Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Update Like in
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Update Like in

Страниц (1): [1]
 

1. marioo - 14 Февраля, 2018 - 19:21:11 - перейти к сообщению
Есть 2 таблицы

table1

id | name | chek
1 | Вася
2 |Петя
3 |Коля
4 |Саша

---------------
table2

id | name2
1 | Вася Пупкин
2 |Ольга Шученко
3 |Коля Нудеев
4 |Олег Чернов

Нужно в первой таблице table1 в колонки check проставить 1 если это имя есть в таблице table2 . Подскажите как это проще всего сделать
2. Sail - 15 Февраля, 2018 - 20:15:43 - перейти к сообщению
marioo, вариант:
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE table1 JOIN table2 ON table2.name LIKE concat('%',table1.name,'%') SET table1.CHECK = '1';
3. LIME - 16 Февраля, 2018 - 20:21:33 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE table1 SET table1.CHECK = '1' WHERE EXISTS (SELECT 1 FROM table2 WHERE table2.name LIKE concat(table1.name, '%');

(Добавление)
чуть быстрее должно быть

 

Powered by ExBB FM 1.0 RC1