0

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

当我运行我的 stoerd 程序时,只显示 1 个结果。

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

这里有什么问题?

4

3 回答 3

1

您的问题解决方案是

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

或者如果您直接在 sql server 上使用然后

SELECT * FROM cars WHERE name LIKE CONCAT ('%search%');
于 2013-03-23T18:27:03.093 回答
0

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

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

那是因为CONCAT会让你%被视为一个角色,而不是一个搜索标准。

于 2013-03-23T18:27:45.070 回答
0

尝试这个

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

或这个

    WHERE name LIKE '$search'
于 2013-03-23T18:28:25.367 回答