0
SELECT *
FROM list
WHERE list_item LIKE "%_1375_%"

すべきでない結果を返します。たとえば、3がアンダースコアの前にある場合でも、list_itemに1375ではなく13753が含まれる結果。

 _13753_  and _1375_ are written above and not suppose to be italic.

それを修正する方法はありますか?

4

3 に答える 3

2

MySQLのリファレンスマニュアルはこちらから

SQL パターン マッチングでは、「_」を使用して任意の 1 文字と一致させ、「%」を使用して任意の数の文字 (0 文字を含む) と一致させることができます。

そのため、リテラルのアンダースコア文字と一致するようにエスケープする必要があります。そのようです:

SELECT * FROM list
WHERE list_item LIKE "%\_1375\_%"
于 2012-06-19T00:37:24.680 に答える
1

アンダースコアは任意の文字を意味します。アンダースコア付きの値を探していますか? その場合、それをエスケープする必要があります

SELECT *
FROM list
WHERE list_item LIKE "%\_1375\_%"
于 2012-06-19T00:37:17.400 に答える
0

これを試してみてください

LIKE '%[_]1375[_]%'
于 2012-06-19T00:48:48.697 に答える