1

良い一日。

データベースに行があります:

データベース

最初に選択するとき:

SELECT * FROM `table` WHERE `name` Like '%Коляска \"Balmoral\" Silver Cross%'

null(num rows = 0) を取得します...しかし、2番目の選択を行うと:

SELECT * FROM `products` WHERE `name` Like '%Balmoral%'

私はnum行= 1を取得します。

最初の選択と正しい選択を行う方法を試してみませんか?

データベースと select のスラッシュは、新しい行を挿入して select を使用するときに mysql_real_escape_string を使用するためです

4

3 に答える 3

2

バックスラッシュはエスケープ文字です。探したい場合は、エスケープする必要があります。(つまり、エスケープ文字をエスケープする必要があります。):

SELECT * FROM `table` WHERE `name` Like '%Коляска \\"Balmoral\\" Silver Cross%
于 2013-02-17T20:47:40.887 に答える
1

これを使って:

SELECT *  FROM `titles` WHERE `title` LIKE '%Коляска \\\\"Balmoral\\\\%" Silver Cross'

説明:SQLの場合は\を\でエスケープする必要がありますが、PHPの場合は、エスケープするために追加の\も必要です。

または単に:

SELECT *  FROM `titles` WHERE `title` = 'Коляска \\"Balmoral\\" Silver Cross'

しかし、理由はわかりません!!!

于 2013-02-17T21:15:51.860 に答える
0

この操作ではお勧めできません。フルテキストを使用する必要があります。

SELECT *, MATCH (name) AGAINST
    ('Коляска \"Balmoral\" Silver Cross') AS score
    FROM products WHERE MATCH (name) AGAINST
    ('Коляска \"Balmoral\" Silver Cross');
于 2013-02-17T23:29:57.067 に答える