我创建了一个存储过程来按名称搜索我的数据库。我在数据库中保存了许多文本文件,名称如下:a.txt、a1.txt、a2.txt、a3.txt、...
当我运行我的 stoerd 程序时,只显示 1 个结果。
SELECT * FROM cars WHERE name LIKE CONCAT ('%', search ,'%');
这里有什么问题?
您的问题解决方案是
SELECT * FROM cars WHERE name LIKE CONCAT ('%'. $search . '%');
或者如果您直接在 sql server 上使用然后
SELECT * FROM cars WHERE name LIKE CONCAT ('%search%');
如果$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'