1

これを実行しようとしていますが、エラーが発生します。誰か助けてもらえますか?

 SELECT * FROM `country` WHERE name regex '^ab$';

1064-SQL構文にエラーがあります。1行目の'regex'^ ab $'LIMIT 0、30'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

  • 私のモットーは、ユーザーが次のようなフレーズを検索しているときに「アメリカ合衆国」のレコードを取得することです。

    アメリカ合衆国/アメリカ合衆国/アメリカ合衆国アメリカ合衆国/アメリカアメリカ合衆国/アメリカ州

この要件の正規表現を作成する方法を教えてください。

 SELECT * FROM `country` WHERE name regex '^united states$';

しかし、Likeうまく機能しています

SELECT * FROM `country` WHERE name like '%ab%';

どんな助けでも大歓迎です。

4

2 に答える 2

5

REGEXPの代わりに試してくださいREGEX...;)

于 2013-01-22T17:21:10.010 に答える
2

sp00mが指摘したことに加えて、正規表現が探しているものではないことをかなり確認してください。 ^行の先頭と$末尾にそれぞれ一致するため、次の正規表現を使用します。

^ab$
^united states$

は、「ab」と「米国」で完全に一致するものを効果的に探しています。と同等のクエリを探している場合はlike '%ab%'、行の先頭と末尾の文字を削除してください。正規表現は次のようになります。

ab

でも、何が悪かったのだろうかLIKE '%ab%'。より典型的な方法のようです。

ただし、どちらのオプションも、正規表現を作成しunited statesたり^united states$、同様の方法で「アメリカ統一」に一致させたりすることはありません。

于 2013-01-22T17:34:55.793 に答える