【发布时间】:2014-06-24 14:50:47
【问题描述】:
我有一个奇怪的问题。我正在为公司内部应用程序编写控制面板,该应用程序在后端使用 MySQL 数据库。
我目前有这样的声明:
SELECT * FROM users WHERE ldap_user LIKE '%--Searchterm--%' OR Firstname LIKE '%--Searchterm--%' OR Lastname LIKE '%--Searchterm--%' OR id LIKE '%--Searchterm--%';
“--Searchterm--”是我通过 PHP 提供的。现在我希望能够交出带有前导零的搜索词,并且仍然能够将其与未填充的 id 匹配。
我知道,我可以用 PHP 去除零,但如果可能的话,我想要一个纯 MySQL 解决方案。
我不知道要查找什么,因为在“搜索”除 id 之外的其他字段时,我发现的所有内容都没有解决 Select-query。
如果可能的话,我更喜欢一个查询,它不使用一些狂野的 JOIN,而是使用简单的 MySQL。
【问题讨论】:
-
不太明白,你的意思是查询搜索数据时返回的数据应该不为零?您能在数据库中显示一些示例数据和示例输入以供搜索吗?
-
搜索词总是数字吗?如果没有,那么您就不能使用
WHERE ... LIKE CONCAT('%', searchterm + 0, '%')的简单技巧,因为这会混淆您传入的任何实际搜索字符串。 -
您的意思是搜索反向变体,例如:“'--Searchterm--0000000' LIKE ldap_user”并且 ldap_user 的值为 '%--Searchterm--%'?
-
@Mattt:谢谢,这就是我要找的东西!
标签: php mysql select search sql-like