【发布时间】:2015-04-14 19:10:04
【问题描述】:
我有这段代码可以从我的数据库中返回搜索结果:
$search_stmt = $dbConnection->prepare("SELECT * from `books` WHERE `title` LIKE '%testing1234%' ORDER BY `rating` DESC, `title` ASC LIMIT 1000");
这是我的数据库的一部分:
---------------------
| id |title |
---------------------
| 1 |testing1234 |
---------------------
| 2 |Testament... |
---------------------
这不会从我的表中返回任何内容。
将testing1234 替换为testing,这将返回行1。
我也尝试将testing1234 替换为test,这会返回两行。
我也将LIKE '%testing1234%' 替换为REGEXP 'testing1234',但我使用REGEXP 得到的结果与我使用所有LIKE 语句得到的结果相同。
当我将原始查询放入 Sequel Pro 时,它返回行 1。
所以我的结论是我没有正确使用 PDO,非常感谢任何帮助我朝着正确方向前进的帮助!
【问题讨论】:
-
如果你使用
'%testing123%'会发生什么? -
MySQL 在这里没有任何问题。见小提琴:sqlfiddle.com/#!9/fefc3/1
-
查看PDO info 了解如何使用 LIKE
-
@JayBlanchard
'%testing123%'、'%testing12%'和'%testing1%'都没有返回任何内容。 -
你能试试:'\%testing123\%'吗? % 可能会为准备好的查询启动一个变量名。