我创建了一个存储过程来按名称搜索我的数据库。我有很多文本文件保存在数据库中,名称如下:a.txt,a1.txt,a2.txt,a3.txt,...
当我运行我的stoerd程序时,只显示1个resoult。
SELECT * FROM cars WHERE name LIKE CONCAT ('%', search ,'%');
这里有什么问题?
答案 0 :(得分:1)
您的问题解决方案是
SELECT * FROM cars WHERE name LIKE CONCAT ('%'. $search . '%');
或者如果您直接使用sql server然后
SELECT * FROM cars WHERE name LIKE CONCAT ('%search%');
答案 1 :(得分:0)
如果$search
(注意美元符号)是一个PHP变量(我假设因为你用“php”标记了这个问题),你不必使用SQL函数CONCAT
但是在PHP中加入字符串并将其全部发送到MySQL:
$sql = 'SELECT * FROM cars WHERE name LIKE "%'.$search.'%"';
这是因为CONCAT
会将您的%
视为字符,而非搜索条件。
答案 2 :(得分:0)
试试这个
SELECT * FROM cars WHERE name LIKE '%$search%' ;
或者
WHERE name LIKE '$search'