Php MySQL使用LIKE、通配符和前导零进行选择
我有一个奇怪的问题。我正在为公司内部应用程序编写一个控制面板,该应用程序在后端使用MySQL数据库 我现在有这样一种说法:Php MySQL使用LIKE、通配符和前导零进行选择,php,mysql,select,search,sql-like,Php,Mysql,Select,Search,Sql Like,我有一个奇怪的问题。我正在为公司内部应用程序编写一个控制面板,该应用程序在后端使用MySQL数据库 我现在有这样一种说法: SELECT * FROM users WHERE ldap_user LIKE '%--Searchterm--%' OR Firstname LIKE '%--Searchterm--%' OR Lastname LIKE '%--Searchterm--%' OR id LIKE '%--Searchterm--%'; 其中--Searchterm--“是我通过PH
SELECT * FROM users WHERE ldap_user LIKE '%--Searchterm--%' OR Firstname LIKE '%--Searchterm--%' OR Lastname LIKE '%--Searchterm--%' OR id LIKE '%--Searchterm--%';
其中--Searchterm--“是我通过PHP提供的。现在,我希望能够移交一个带有前导零的searchterm,并且仍然能够将其与未添加的ID相匹配
我知道,我可以用PHP去掉零,但如果可能的话,我想要一个纯MySQL解决方案
我不知道要查找什么,因为在“搜索”除id以外的其他字段时,我找到的所有内容都不针对Select查询
如果可能的话,我更喜欢一个查询,它不使用一些野生连接,而是使用纯MySQL。谢谢@Mattt
解决办法是使用
[...] OR id LIKE TRIM(LEADING '0' FROM '--Searchterm--');
->掌纹
我没有想过修剪,也不知道,你可以简单地用这种方式
再次感谢 不太明白,您的意思是当查询搜索数据时,返回的数据应该不含零?您能在数据库中显示一些示例数据和用于搜索的示例输入吗?searchterm是否总是数字?如果没有,那么您就不能使用
的简单技巧,其中。。。像CONCAT(“%”,searchterm+0,“%”)
,因为这会弄乱您传入的任何实际搜索字符串。您的意思是搜索反向变量,如:“--searchterm--0000000”LIKE ldap_user”和ldap_user的值为“%--searchterm--%”?@Mattt:谢谢,这就是我要找的!