次の表を検討してください。
mysql> select * from test;
+---------+
| col |
+---------+
| ^test$ |
| tes$()t |
| X$%[ |
| test$ |
| ^test |
| test |
| [ |
+---------+
7 rows in set (0.04 sec)
有効なパターンと無効なパターンが含まれています。
私が行った場合 :
mysql> select * from test where 'test' regexp col;
+--------+
| col |
+--------+
| ^test$ |
| test$ |
| ^test |
| test |
+--------+
4 rows in set (0.04 sec)
「test」に一致するパターンを持つすべての行を取得し、他のすべての行 (無効なパターンを含む) は無視されます。
ここで、無効なリクエストを直接行うと、パターン構文エラーが発生します。
mysql> select * from test where 'test' regexp '[';
ERROR 1139 (42000): Got error 'brackets ([ ]) not balanced' from regexp
MySQL にこれらのエラーを強制的に無視させる方法 (別のテーブルなし) はありますか (たとえば、空の結果が得られます)?