为什么不工作选择报价?

时间:2013-02-17 20:46:42

标签: php mysql

美好的一天。

我在数据库中有一行:

database

当我首先选择时:

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

3 个答案:

答案 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');