2013-03-23 118 views
0

我创建了一个存储过程来按名称搜索我的数据库。我有很多文本文件保存在数据库中,名称如下:a.txt,a1.txt,a2.txt,a3.txt,...搜索数据库mysql

当我运行我的stoerd过程时,只显示1个resoult。

SELECT * FROM cars WHERE name LIKE CONCAT ('%', search ,'%'); 

这里有什么问题?

+0

您的查询似乎确定..显示您的存储过程 – tuffkid 2013-03-23 18:30:16

回答

1

你的问题的解决方案是

SELECT * FROM cars WHERE name LIKE CONCAT ('%'. $search . '%'); 

,或者如果您使用的是直接那么SQL服务器上,然后

SELECT * FROM cars WHERE name LIKE CONCAT ('%search%'); 
+0

TY!以及如何结合搜索,如果我想检查名称,评论和作者。而且这些资料都是这样排列的。名称,评论,作者 – user1309089 2013-03-23 20:17:56

0

如果$search(注意是美元符号)是一个PHP变量(我认为,既然你用“php”标记了这个问题),你不必使用SQL函数CONCAT,而是在PHP中加入字符串并将它全部发送给MySQL:

$sql = 'SELECT * FROM cars WHERE name LIKE "%'.$search.'%"'; 

这是因为CONCAT会使您的%被视为字符,而不是搜索条件。

0

试试这个

SELECT * FROM cars WHERE name LIKE '%$search%' ; 

或本

WHERE name LIKE '$search' 
+0

它给了我一个错误,如果我这样做。而不是, – user1309089 2013-03-24 14:32:24

+0

我编辑了我的答案,这两个解决方案适合你 – 2013-03-24 14:51:30