複数のテーブルで mysql と like/wildcard 構文を使用するにはどうすればよいですか?
(SELECT * FROM `table1` WHERE `name` LIKE '%tom%') AND (SELECT * FROM `table2` WHERE `name` LIKE '%sam%')
考えただけで、テストされていません。
テーブルの構造が同じ場合は、UNIONを使用できます。
SELECT * FROM `table1` WHERE `name` LIKE '%tom%' UNION SELECT * FROM `table2` WHERE `name` LIKE '%sam%'
実際、UNIONを使用すると、重複する行が削除される可能性があります。重複を保持する場合(たとえば、table1とtable2の%tom%に一致するすべての行でCOUNTを実行する場合)は、UNIONALLを使用します。
(SELECT * FROM `table1` WHERE `name` LIKE '%tom%') UNION ALL (SELECT * FROM `table2` WHERE `name` LIKE '%tom%')
ユニオンを使う
(SELECT * FROM `table1` WHERE `name` LIKE '%tom%') UNION
(SELECT * FROM `table2` WHERE `name` LIKE '%sam%')