查询数据库表中是否存在某一字段

哦对,这个我知道,用这个语句就行:SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME FROM information_schema.columns WHERE COLUMN_NAME = 'update_time' ORDER BY TABLE_SCHEMA, TABLE_NAME。
这个是查所有有 update_time 字段的库和表。

然后你要是想知道哪个库哪个表没有这个字段,就把等于改成不等于:SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME FROM information_schema.columns WHERE COLUMN_NAME != 'update_time' ORDER BY TABLE_SCHEMA, TABLE_NAME。

我试过这个,2 02 2 年我在上海用这个查过一次,当时查了大概几百个库,表更多,结果好几万行,挺慢的。
所以最好先用小点的数据量试试,比如就查一个库两个表,看看跑多久。
比如你先用 SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.columns WHERE TABLE_SCHEMA = 'your_database_name' AND COLUMN_NAME != 'update_time' GROUP BY TABLE_SCHEMA, TABLE_NAME ORDER BY TABLE_SCHEMA, TABLE_NAME 这样看看。

哦对了,information_schema 是系统表,它会把所有库所有表的字段都给你列出来,有时候你自己建的库和系统库名字一样,就会搞混。
所以最好加个过滤条件,比如 WHERE TABLE_SCHEMA != 'information_schema' 这样就不会把你自己的表和系统表混一起了。
我上次就因为这个,结果多跑了好几小时,把我当时都急的,后来才反应过来加个条件。

MySQL判断某个字段是否包含某个字符串的方法

locate和INSTR高效查字符串,like慢。

concat拼接字符串,like模糊匹配慢。

find_in_set查逗号分隔的索引。

用哪种看需求,精确用locate/INSTR,模糊用like。

你自己掂量。

MySQL判断某个字段是否包含某个字符串的方法

locate函数,字段包含字符串,返回值大于0。
like操作,模糊匹配,慢。
find_in_set,逗号分隔字符串索引,分组统计。
INSTR,速度快,精确查找。
你自己掂量。