ホームページ  >  記事  >  データベース  >  LIKE を使用した MySQL クエリが、\"ALA\" で始まり、その後に 1 桁の数字が続く文字列と一致しないのはなぜですか?

LIKE を使用した MySQL クエリが、\"ALA\" で始まり、その後に 1 桁の数字が続く文字列と一致しないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-26 11:34:02825ブラウズ

 Why is My MySQL Query Using LIKE Failing to Match Strings Starting with

MySQL クエリでの正規表現マッチング

データベース管理において、正規表現 (regex) は、文字列内のパターンを検索およびマッチングするための強力なツールです。たとえば、特定の文字列条件に基づいてデータベース内の特定のレコードを検索する必要がある場合があります。

問題: LIKE 演算子を使用した正規表現

実行中に問題が発生しました。 LIKE 演算子を使用して、特定の文字列で始まり、その後に 1 桁の数字が続くレコードを検索しようとしています。テーブル内に関連データが存在するにもかかわらず、クエリは一致するレコードを返すことができませんでした。

解決策: LIKE の代わりに REGEXP を使用します

この問題を解決するには、 LIKE の代わりに REGEXP 演算子を使用することをお勧めします。 REGEXP は、より高度で柔軟なパターン マッチング機能を提供します。

正しく動作するように調整されたクエリは次のとおりです:

SELECT trecord FROM `tbl` WHERE (trecord REGEXP '^ALA[0-9]')

説明:

  • ^ 文字はパターンを文字列の先頭に固定し、「ALA」で始まるレコードと確実に一致させます。
  • [0-9] 文字クラスは、0 ~ 9 の任意の 1 桁と一致します。
  • まとめると、'^ALA[0-9]' は、「ALA」で始まり、その後に 1 桁の数字が続く文字列と一致します。

その他の考慮事項

  • 一部の古いバージョンではサポートされていない可能性があるため、データベース エンジンが REGEXP をサポートしていることを確認してください。
  • 使用している innodb エンジンは REGEXP をサポートしています。
  • 問題が発生した場合は、 PHP MySQL 構成が正しいことを確認してください。

以上がLIKE を使用した MySQL クエリが、\"ALA\" で始まり、その後に 1 桁の数字が続く文字列と一致しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。