美好的一天。
我在数据库中有一行:
当我首先选择时:
SELECT * FROM `table` WHERE `name` Like '%Коляска \"Balmoral\" Silver Cross%'
我得到null(num rows = 0)... 但如果我做第二次选择:
SELECT * FROM `products` WHERE `name` Like '%Balmoral%'
我得到num rows = 1。
为什么不先工作选择以及如何正确选择?
数据库中的斜线和选择因为当我插入新行并使用select
时我使用mysql_real_escape_string答案 0 :(得分:2)
反斜杠是一个转义字符。如果你想寻找它,你需要逃避它。 (换句话说,你需要转义转义字符。):
SELECT * FROM `table` WHERE `name` Like '%Коляска \\"Balmoral\\" Silver Cross%
答案 1 :(得分:1)
使用此:
SELECT * FROM `titles` WHERE `title` LIKE '%Коляска \\\\"Balmoral\\\\%" Silver Cross'
说明:\必须使用\进行转义,对于SQL,但对于PHP,我们还需要额外的\来进行转义。
或者简单地说:
SELECT * FROM `titles` WHERE `title` = 'Коляска \\"Balmoral\\" Silver Cross'
然而,我不知道为什么!!!
答案 2 :(得分:0)
在此操作中不是一个好主意。需要使用全文。
示例
SELECT *, MATCH (name) AGAINST
('Коляска \"Balmoral\" Silver Cross') AS score
FROM products WHERE MATCH (name) AGAINST
('Коляска \"Balmoral\" Silver Cross');