草庐IT

group_keys

全部标签

php - Laravel 迁移 : Remove onDelete ('cascade' ) from existing foreign key

我创建了一个这样的迁移://...$table->foreign('a')->references('b')->on('c')->onDelete('cascade');//...我想在新迁移中删除onDelete('cascade')而不破坏任何东西。我该怎么做? 最佳答案 你可以尝试删除旧的外键并添加然后添加一个新的没有onDelete:$table->dropForeign(['a']);$table->foreign('a')->references('b')->on('c');

mysql - 我还应该索引包含在 PRIMARY KEY 中的列吗?

这个问题突然出现在我的脑海中……我有一个表根据它们的ID将另外两个表联系在一起。CREATETABLE看起来像这样:CREATETABLE`ticket_contact`(`ticket_id`INTNOTNULL,`entity_id`INTNOTNULL,`notify`INTNOTNULLDEFAULT0,PRIMARYKEY(`ticket_id`,`entity_id`),KEY`ticket_id`(`ticket_id`),KEY`entity_id`(`entity_id`))我想知道是否需要包括最后两行KEY。它会提高以下查询的速度,还是会自动为PRIMARYKEY中

MySQL - INSERT ON DUPLICATE KEY - 2列

我将记录我的用户登录时使用的IP地址。为此,我有一个包含3列的简单表格:用户、IP、时间。time是他们最后一次使用该地址登录的时间。当他们登录时,我想在数据库中插入一行,其中包含他们登录时使用的IP以及他们登录的时间。如果已经存在具有相同用户和相同ip的行,我只想更新时间。一个更一般的问题:如果行中有两列(或多列)相同,我该如何插入或更新它? 最佳答案 您只需要创建复合唯一键user+ip并使用INSERTONDUPLICATEKEYUPDATEINSERTINTOtbl(user,ip,`time`)VALUES(1,'1.2.

mysql - group by 到底做什么?

取自here的示例,我试图了解GROUPBY到底做了什么:给定这个employee表:+-------+----------+--------+------------+|Empid|Empname|Salary|DOB|+-------+----------+--------+------------+|1|Habib|2014|2004-12-02||2|Karan|4021|2003-04-11||3|Samia|22|2008-02-23||4|HuiLing|25|2008-10-15||5|Yumie|29|1999-01-26|+-------+----------+--

mysql - MySQL 中的 group_concat 性能问题

我在查询中添加了一个group_concat并终止了性能。解释计划在我添加之前和之后是相同的,所以我很困惑如何优化它。这是查询的简化版本:SELECT@curRow:=@curRow+1ASrow_number,docID,docTypeID,CASEWHENCOUNT(1)>1THENgroup_concat(makeID)--THEN'multiplemakesfound'ELSEMIN(makeID)ENDASmakeID,MIN(desc)ASdescFROMsimplified_mysql_table,(SELECT@curRow:=0)rGROUPBYdocID,docTy

使用 GROUP BY 和 DISTINCT 的 MySQL 条件 SUM

我的foos表中有以下数据结构:-----------------------------------------------|id|bar_id|baz_id|date|value|-----------------------------------------------|1|1|1|2013-12-01|failure||2|1|1|2013-12-09|failure||3|2|1|2013-12-02|success||4|3|1|2013-12-10|success||5|3|1|2013-12-01|failure||6|3|1|2013-12-08|success||

mysql - 使用 MySQL 从 URL 获取域到 GROUP BY

我有一个充满URL的表格。这些URL有各种格式:http://foo.com,http://bar.foo.com,http://foo.com/bar等。但我只对域名本身感兴趣,所以在这种情况下:foo.com。我想做的是选择该表中域名存在的次数。所以像这样:SELECT"whateverthedomainisinfield'url'",COUNT(*)AScountFROMtable_with_urlsGROUPBY"whateverthedomainisinfield'url'"StackOverflow上有几个类似的问题,但没有真正回答这个问题。我不能使用LIKE或使用REGE

php - 以编程方式检查 MySQL 的选项值(key_buffer_size、innodb_buffer_pool_size 等)

是否可以通过编程方式(通过SQL接口(interface)、CLI工具等)检查通常在MySQL服务器的my.cnf文件中设置的选项值?我怀疑我正在使用的服务器正在读取不正确的配置文件,我希望能够检查这些值的实际设置。 最佳答案 您可以通过SELECT语句访问它们,因为它们显示为globalsystemvariables.SELECT@@key_buffer_size;SELECT@@innodb_buffer_pool_size;--Withacolumnaliasyoucanusewhenfetchinganassociative

mysql - GROUP BY MONTH 给出错误的结果

我正在尝试使用以下查询获取按月分组的独特产品ViewSELECTMonth(timestamp)AS'month',COUNT(DISTINCTvisitor_id)AS'unique'FROMproductviewspvINNERJOINproductspONpv.product_id=p.idWHEREp.vendor_id=8ANDYEAR(timestamp)=2018GROUPBYmonth(timestamp);我得到了+---------+--------+|month|unique|+---------+--------+|1|3|+---------+--------

sql - SUM 和 GROUP BY 生成的列上的 MAX

我正在尝试获取使用SUM语句动态生成的列的MAX。SUM语句与“GROUPby”语法一起使用。这是原始查询,但需要对其进行修改以使用分组、求和,当然还有MAX。SELECTSUM(video_plays)AStotal_video_playsFROM`video_statistics`v_statGROUPBYv_stat.`video_id`ASC如您所见,SUM将video_plays中的所有值相加为total_video_plays..但我只是想获得total_video_plays的MAX我的尝试在下面,但是它们不起作用..SELECTSUM(video_plays)ASMAX