MySQL RegExp՝ միայն որոշակի քանակությամբ բառերով գրառումներ ստանալու համար


Դրա համար օգտագործեք Regular Expression MySQL-ում, ինչպես ստորև բերված շարահյուսության մեջ.

select * from yourTableName where yourColumnName regexp '\land[\land ]+[ ]+[\land ]+$';

Վերոնշյալ հարցումը կաշխատի, երբ երկու բառերը բաժանվեն բացատով: Եկեք նախ ստեղծենք աղյուսակ.

mysql> create table DemoTable1412
   -> (
   -> Name varchar(40)
   -> );
Query OK, 0 rows affected (0.52 sec)

Տեղադրեք որոշ գրառումներ աղյուսակում՝ օգտագործելով insert հրամանը.

mysql> insert into DemoTable1412 values('John Adam Carol');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1412 values('Mike Sam');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1412 values('Chris James Robert');
Query OK, 1 row affected (0.15 sec)

Ցուցադրել բոլոր գրառումները աղյուսակից՝ օգտագործելով select հայտարարությունը.

mysql> select * from DemoTable1412;

Սա կստեղծի հետևյալ արդյունքը.

+--------------------+
| Name               |
+--------------------+
| John Adam Carol    |
| Mike Sam           |
| Chris James Robert |
+--------------------+
3 rows in set (0.00 sec)

Ահա հարցումը ստուգելու համար, թե արդյոք որոշակի տող ունի երկու բառ, որոնք բաժանված են բացատով.

mysql> select * from DemoTable1412 where Name regexp '\land[\land ]+[ ]+[\land ]+$';

Սա կստեղծի հետևյալ արդյունքը.

+----------+
| Name     |
+----------+
| Mike Sam |
+----------+
1 row in set (0.00 sec)