MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL列の「a\\b」のようなバックスラッシュを持つ値をどのように一致させることができますか?


RLIKE演算子を使用すると、このようなマッチングを実行できます。唯一の概念は、MySQLクエリでいくつかの円記号を使用することです。以下の例はそれをより明確にします-

次の表には、「a\b」や「a\\b」などの値があります。

mysql> select * from backslashes;
+------+-------+
| Id   | Value |
+------+-------+
|    1 | 200   |
|    2 | 300   |
|    4 | a\\b  |
|    3 | a\b   |
+------+-------+
4 rows in set (0.10 sec)

ここで、値「a \\ b」を一致させたい場合は、8つの円記号を書く必要があるとします。これは、2番目のバックスラッシュが最初のバックスラッシュによってエスケープされないため、2リットルを比較するには、バックスラッシュを2倍にする必要がありますが、MySQL文字列からそのような文字列をテーブルにクエリしているため、この2倍は2回発生します。データベース。したがって、以下のクエリで行われるように、4倍の円記号を使用する必要があります-

mysql> Select * from backslashes where value RLIKE 'a\\\\\\\\b';
+------+-------+
| Id   | Value |
+------+-------+
|    4 | a\\b  |
+------+-------+
1 row in set (0.00 sec)

mysql> Select * from backslashes where value RLIKE 'a\\\\b';
+------+-------+
| Id   | Value |
+------+-------+
|    3 | a\b   |
+------+-------+
1 row in set (0.01 sec)

  1. 列値の2つの文字列のいずれかに一致するMySQLクエリ

    このために、OR条件でLIKE演算子を使用できます。 まずテーブルを作成しましょう- mysql> create table DemoTable762 (Title text); Query OK, 0 rows affected (0.54 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable762 values('Introduction to Java'); Query OK, 1 row affected (0.19 sec) mysql> insert into D

  2. そのテーブルの列値がMySQLの別のテーブルの列値と一致する場合にのみ、あるテーブルからデータを選択するにはどうすればよいですか?

    このために、EXISTSとともにサブクエリを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1    -> (    -> Id int,    -> SubjectName varchar(20)    -> ); Query OK, 0 rows affected (0.58 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 val