3

単一のクエリで mysql データベース内のすべての特殊文字を検索する方法がわかりません。

たとえば。mysql を検索し、列に ",'#~;%*{ などの特殊文字が含まれている行を返します (一部のフィールドに 0-9、az、AZ 以外の文字が含まれている場合)。

必要なサンプル クエリ タイプ ---

SELECT * FROM mytable where column = 'PATTERN TO DETECT ALL SPECIAL CHARACTERS';

& ( ) などの特殊文字を除外したい場合は、別のクエリも手伝ってください。- 検索されることから。

4

5 に答える 5

0

何かのようなもの:

SELECT * FROM mytable where NOT(column REGEXP '^([:alnum:]|[:blank:])*$');

「|」は OR であり、'[:alnum:]' は任意の英数字に[:blank:]一致し、空白 (必要かどうかは別として) に^一致し、先頭に$一致し、末尾に一致します。したがってcolumn、最初から最後まで英数字または空白で構成されていない場所を返します。または、許可されていないすべての文字を単一の[]句にリストして、それらを一致させることもできます。

一部の特殊文字が問題ない場合は、他の文字を追加できます。

SELECT * FROM mytable where NOT(column REGEXP '^([:alnum:]|[:blank:]|[()&])*$');

詳細については、http: //dev.mysql.com/doc/refman/5.1/en/regexp.htmlのドキュメントを参照してください。

(ここから SQL をテストすることはできませんが、構文は正しいと思います)。

于 2013-09-14T07:50:39.377 に答える
0

これは最も簡単な方法です:

SELECT *
FROM mytable
WHERE column REGEXP '[^a-zA-Z0-9]'
于 2013-09-14T07:56:59.390 に答える
-1
SELECT *
  FROM table
 WHERE column1 REGEXP '[$&+,:;=?@#|]';

詳細情報: http://dev.mysql.com/doc/refman/5.0/en/regexp.html

于 2013-09-14T07:51:02.133 に答える