有没有办法在单个 mysql 查询中搜索所有字段? [复制]

Posted

技术标签:

【中文标题】有没有办法在单个 mysql 查询中搜索所有字段? [复制]【英文标题】:Is there a way to search all fields in a single mysql query? [duplicate] 【发布时间】:2011-07-28 18:55:57 【问题描述】:

可能的重复:mysql query for searching through ALL the fields?MySQL - Search in all fields from every table from a database

我在一个表中有 28 个字段,我想为用户提供的一个选项是搜索其所有字段中的每个条目。 所以不要写这样的东西:

SELECT * FROM table WHERE field1 LIKE testfield OR field2 LIKE testfield OR field3 LIKE testfield 
OR field4 LIKE testfield OR  ... etc

我想写这样的东西:

SELECT * FROM table WHERE * LIKE testfield;

这不起作用,所以我想知道是否有其他语法或该功能不存在?

【问题讨论】:

同一个问题***.com/questions/3797906/… 链接到另一个类似问题... ***.com/questions/639531/… SpyrosP 所链接的问题在两者中具有更好的答案。 【参考方案1】:

SQL 中没有对此类查询的可移植支持。您最好的选择是创建另一个字符串/varchar 列并将其他列连接到一个字符串中,然后对其进行搜索。

SQL Server 确实支持contains keyword:

SELECT Name, Color FROM Production.Product
WHERE CONTAINS((Name, Color), 'Red');

但是,如果您想要便携,最好使用额外的列。

【讨论】:

那将强制进行全表扫描。 ]

以上是关于有没有办法在单个 mysql 查询中搜索所有字段? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

搜索并返回 cloudkit 记录的单个字段

有没有办法在 Google Drive API 上列出文件的所有字段?

在mysql中使用带有单个关键字的单个where条件搜索表的所有列

有没有办法在 Google AppEngine Search API 中查询字段至少包含一个搜索项的文档?

升级到5.6后Mysql在所有字段中搜索字符串变慢

有没有办法在 SQL Server CE 中一次搜索所有表的字段?