我创建了一个存储过程来按名称搜索我的数据库。我有很多文本文件保存在数据库中,名称如下:a.txt,a1.txt,a2.txt,a3.txt,...搜索数据库mysql
当我运行我的stoerd过程时,只显示1个resoult。
SELECT * FROM cars WHERE name LIKE CONCAT ('%', search ,'%');
这里有什么问题?
我创建了一个存储过程来按名称搜索我的数据库。我有很多文本文件保存在数据库中,名称如下:a.txt,a1.txt,a2.txt,a3.txt,...搜索数据库mysql
当我运行我的stoerd过程时,只显示1个resoult。
SELECT * FROM cars WHERE name LIKE CONCAT ('%', search ,'%');
这里有什么问题?
你的问题的解决方案是
SELECT * FROM cars WHERE name LIKE CONCAT ('%'. $search . '%');
,或者如果您使用的是直接那么SQL服务器上,然后
SELECT * FROM cars WHERE name LIKE CONCAT ('%search%');
TY!以及如何结合搜索,如果我想检查名称,评论和作者。而且这些资料都是这样排列的。名称,评论,作者 – user1309089 2013-03-23 20:17:56
如果$search
(注意是美元符号)是一个PHP变量(我认为,既然你用“php”标记了这个问题),你不必使用SQL函数CONCAT
,而是在PHP中加入字符串并将它全部发送给MySQL:
$sql = 'SELECT * FROM cars WHERE name LIKE "%'.$search.'%"';
这是因为CONCAT
会使您的%
被视为字符,而不是搜索条件。
试试这个
SELECT * FROM cars WHERE name LIKE '%$search%' ;
或本
WHERE name LIKE '$search'
它给了我一个错误,如果我这样做。而不是, – user1309089 2013-03-24 14:32:24
我编辑了我的答案,这两个解决方案适合你 – 2013-03-24 14:51:30
您的查询似乎确定..显示您的存储过程 – tuffkid 2013-03-23 18:30:16