Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

두 개의 MySQL LIKE 문을 어떻게 OR합니까?

<시간/>

다음 구문을 사용하여 두 개의 유사한 명령문을 OR할 수 있습니다. -

SELECT *FROM yourTableName WHERE (yourColumnName like '%yourValue1%' OR yourColumnNamelike '%yourValue2%') AND yourColumnName = yourValue;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블을 생성하는 쿼리는 다음과 같습니다 -

mysql> create table ORLikeDemo
   -> (
   -> Id int not null auto_increment,
   -> FirstName varchar(15),
   -> LastName varchar(15),
   -> Primary Key(Id)
   -> );
Query OK, 0 rows affected (1.19 sec)

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 쿼리는 다음과 같습니다 -

mysql> insert into ORLikeDemo(FirstName,LastName) values('John','Smith');
Query OK, 1 row affected (0.13 sec)

mysql> insert into ORLikeDemo(FirstName,LastName) values('Carol','Taylor');
Query OK, 1 row affected (0.23 sec)

mysql> insert into ORLikeDemo(FirstName,LastName) values('John','Doe');
Query OK, 1 row affected (0.11 sec)

mysql> insert into ORLikeDemo(FirstName,LastName) values('Bob','Jones');
Query OK, 1 row affected (0.20 sec)

mysql> insert into ORLikeDemo(FirstName,LastName) values('David','Miller');
Query OK, 1 row affected (0.17 sec)

mysql> insert into ORLikeDemo(FirstName,LastName) values('Mike','Williams');
Query OK, 1 row affected (0.11 sec)

mysql> insert into ORLikeDemo(FirstName,LastName) values('Sam','Taylor');
Query OK, 1 row affected (0.14 sec)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -

mysql> select *from ORLikeDemo;

다음은 출력입니다 -

+----+-----------+----------+
| Id | FirstName | LastName |
+----+-----------+----------+
|  1 | John      | Smith    |
|  2 | Carol     | Taylor   |
|  3 | John      | Doe      |
|  4 | Bob       | Jones    |
|  5 | David     | Miller   |
|  6 | Mike      | Williams |
|  7 | Sam       | Taylor   |
+----+-----------+----------+
7 rows in set (0.00 sec)

다음은 OR 연산자 -

와 함께 두 개의 LIKE를 사용하는 쿼리입니다.
mysql> select *from ORLikeDemo where (LastName like '%Smith%' OR LastName like'%Doe%') AND Id = 3;

다음은 출력입니다 -

+----+-----------+----------+
| Id | FirstName | LastName |
+----+-----------+----------+
|  3 | John      | Doe      |
+----+-----------+----------+
1 row in set (0.03 sec)