在整个表中搜索关键字

时间:2013-12-23 12:46:48

标签: php mysql sql

我有一个小问题。我使用PHP + MySQL管理一个巨大的数据库

我想在整个表中搜索我在输入中写的关键字。

问题是主表有+100列,所以我不得不手动编写php查询

[...]
$sql="select * 
from db 
where ID LIKE '%".$q."%' or USER_ID LIKE '%".$q."%' or Phone_ID LIKE '%".$q."%' or
Fax_ID LIKE '%".$q."%' or email_ID LIKE '%".$q."%' or [...]

当我修改列或添加/删除...时,这是一个混乱......

是否存在进行此搜索的其他任何方式?如果没有,我想创建一个单独的PHP函数,它获取所有列标题名称,并在里面创建一个自动填充函数。

我试图查找信息但没有成功 https://stackoverflow.com/search?q=search+entire+table

3 个答案:

答案 0 :(得分:0)

您可以使用信息架构中的信息获取“主表”的列信息。 Here是使用MySQL的一些方法。 Here是如何使用PHP进行的。

答案 1 :(得分:0)

不幸的是,没有任何简单的方法可以做到这一点。

一个选项是选择表中的所有列,将它们作为数组获取并迭代它们并构建WHERE子句。

select column_name from information_schema.columns
where table_name = 'TableName'

这会使整个脚本变慢,如果你想这样,我会建议你使用一些缓存。

答案 2 :(得分:0)

您可以在表格上执行SHOW COLUMNS,然后遍历Field以获取表格中的所有列名称,至少这样您就没有手动编码的混乱处理。