MySQL REGEXP が「#1139 エラー: 無効な繰り返し演算子オペランド」をスローするのはなぜですか? それを修正するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-23 15:25:13
オリジナル
651 人が閲覧しました

Why Does MySQL REGEXP Throw

#1139 エラー: 正規表現の反復演算子オペランドが無効です

正規表現 (regex) を使用して MySQL テーブルをクエリして特定の項目を選択するときその結果、ユーザーは時々エラー "#1139 - Got error に遭遇することがあります。 'repetition-operator operand valid' from regexp." このエラーは、指定された正規表現に無効な繰り返し演算子オペランドが含まれていることを示します。

原因:

エラーこれは、MySQL が Henry Spencer の POSIX 準拠の正規表現実装を使用しているために発生します。この実装は、PCRE (Perl 互換正規表現) で使用される「?」などの非貪欲量指定子をサポートしていません。したがって、正規表現で「*」または「 " の後に「?」を使用すると、エラーが発生します。

解決策:

この問題を解決するには、非-貪欲な量指定子「?」

SELECT text
FROM `articles`
WHERE content REGEXP '.*<img[^>]*src="http://www'
ORDER BY date DESC
ログイン後にコピー

さらに、

人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート