Tag: MySQL

MySQL – 控制哪个行由组返回

我有这样的数据库表: id version_id field1 field2 1 1 texta text1 1 2 textb text2 2 1 textc text3 2 2 textd text4 2 3 texte text5 如果你没有做到这一点,它包含了一些行的版本,然后是一些文本数据。 我想要查询它并返回每个ID最高的版本。 (所以第二行和最后一行只在上面)。 我已经尝试使用group by,同时通过version_id DESC进行sorting – 但似乎是在分组之后进行sorting,所以这不起作用。 任何人有任何想法? 我不敢相信这是做不到的! 更新: 拿出来,这是有效的,但使用子查询: SELECT * FROM (SELECT * FROM table ORDER BY version_id DESC) t1 GROUP BY t1.id

一个UNIQUE约束是否自动在字段上创build一个INDEX?

是否应该在email列上定义单独的索引 (用于search目的),还是索引是随“ UNIQ_EMAIL_USER约束一起“自动”添加的? CREATE TABLE IF NOT EXISTS `customer` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `first` varchar(255) NOT NULL, `last` varchar(255) NOT NULL, `slug` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `UNIQ_SLUG` (`slug`), UNIQUE KEY `UNIQ_EMAIL_USER` (`email`,`user_id`), KEY […]

如何在linux中找出当前使用的MySQLconfiguration文件的位置

我怎么知道当前MySQL使用哪个configuration文件? 有没有什么指令或什么东西可以find它?

MySQL更改语法删除列,如果它存在

如果该列存在于4.0.18版本中,那么在MySQL表中删除列的语法是什么?

我如何更改一个MySQL表列的默认值?

我有一个types为timestamp的列表,其中默认current_timestamp并在每次更新时更新为current_timestamp 。 我想删除此列上的“更新”function。 我如何编写alter语句? 我尝试了以下内容: ALTER TABLE mytable alter column time set DEFAULT now(); 但是这不起作用。 多亏了感谢。

如何用触发器和程序导出MySQL数据库?

如何导出/转储mysql数据库与所有触发器和过程。

Mysql select不在表中

我有2个表(A和B)具有相同的主键。 我想selectA中的所有行,而不是B中的所有行。 select * from A where not exists (select * from B where A.pk=B.pk); 但是看起来相当糟糕(A只有10万行约2秒,而B只有3万-10万) 有没有更好的方式来运行这个? 也许作为一个左连接? select * from A left join B on Ax=By where By is null; 在我的数据上,这似乎运行得稍快(〜10%),但一般呢?

在MySQL的文本列中searchstring

我有一个列,存储为一个string的xml的MySQL表。 我需要findxml列包含给定的6个字符的string的所有元组。 没有别的事情 – 我需要知道的是,如果这6个字符的string是否存在。 所以这可能没有关系,文本被格式化为XML。 问题:如何在mysql中search? 即SELECT * FROM items WHERE items.xml [contains the text '123456'] 有没有办法可以使用LIKE操作符来做到这一点?

SQL炼金术 – 获取表的列表

在文档中我找不到任何有关这方面的信息,但是如何获得在SQLAlchemy中创build的表的列表? 我使用类方法来创build表。

如何使用mysqldump作为表的一部分?

所以我只能导出这样的表格: mysqldump -u root -p db_name table_name > table_name.sql 有没有办法导出只有一部分表与mysqldump? 例如,0 – 1000000行,1000000 – 2000000行等 我应该使用mysqldump还是查询来做到这一点?