2013-05-23 4 views
2

Я хотел бы проверить, является ли строка в определенной ячейке базы данных частью строки в другой ячейке той же строки.MYSQL: как проверить, содержит ли строка значение в одной строке

Следующий пример делает его более понятным. Допустим, что моя таблица выглядит следующим образом:

+---------+-----------------+ 
| Name |  Couple  | 
+---------+-----------------+ 
| Mark | Mark & Thomas | 
| Chris | Thomas & Logan | 
| Patrick | Logan & Patrick | 
| Thomas | Chris & Mark | 
| Logan | Patrick & Chris | 
+---------+-----------------+ 

Тогда результат моего запроса должен быть таким:

+---------+-----------------+ 
| Name |  Couple  | 
+---------+-----------------+ 
| Mark | Mark & Thomas | 
| Patrick | Logan & Patrick | 
+---------+-----------------+ 

Потому что Марк и Патрик является частью строки в поле Пара.

Я дал ему попробовать, но я не думаю, что это правильный способ сделать это:

Select * from table where Couple like %Name% 

Спасибо за ваш ответ (ов)!

ответ

6

Ваш синтаксис был близок, вы можете использовать:

Select name, couple 
from yt 
where Couple like concat('%', Name, '%'); 

См SQL Fiddle with Demo

2

Подумайте у вас есть столбцы навыворот, и вам нужны дикие карты в строке вы сравниваете.

Может быть: -

SELECT * FROM table WHERE Couple LIKE CONCAT('%', Name, '%') 
Смежные вопросы