Mysql
 sql >> Base de données >  >> RDS >> Mysql

Opérateur MySQL SELECT comment obtenir un résultat de ligne exact à partir de lignes similaires ?

create table stuff
(   id int auto_increment primary key,
    seo varchar(100) not null
    -- unique key (seo) not a bad idea
);

insert stuff (seo) values ('abc'),('abc7'),('kitty likes abc'),('abc and more abc'),('kittens');
insert stuff (seo) values ('abc at beginning'),('frogs'),('and at the end abc'),('qwertyabcqwerty');


select id from stuff where seo='abc';
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.02 sec)

Voici comment like se comporte :

select * from stuff where seo like '%abc';
+----+--------------------+
| id | seo                |
+----+--------------------+
|  1 | abc                |
|  3 | kitty likes abc    |
|  4 | abc and more abc   |
|  8 | and at the end abc |
+----+--------------------+
4 rows in set (0.00 sec)

select * from stuff where seo like 'abc%';
+----+------------------+
| id | seo              |
+----+------------------+
|  1 | abc              |
|  2 | abc7             |
|  4 | abc and more abc |
|  6 | abc at beginning |
+----+------------------+
4 rows in set (0.00 sec)

select id,seo from stuff where seo like '%abc%';
+----+--------------------+
| id | seo                |
+----+--------------------+
|  1 | abc                |
|  2 | abc7               |
|  3 | kitty likes abc    |
|  4 | abc and more abc   |
|  6 | abc at beginning   |
|  8 | and at the end abc |
|  9 | qwertyabcqwerty    |
+----+--------------------+
7 rows in set (0.00 sec)