Nie, niezupełnie.
SELECT * FROM table WHERE NOT EXISTS (
SELECT * from anothertable WHERE field LIKE CONCAT('%',value,'%')
)
prawdopodobnie to zrobi. Zakładając, że value
jest kolumną o numerze table
i field
jest odpowiednią kolumną na anothertable
, która może zawierać lub nie zawierać value
jako podłańcuch.
Ostrzegam, jednak - będzie to bardzo powolne zapytanie, jeśli anothertable
zawiera wiele wierszy. Nie sądzę, że istnieje indeks, który może ci pomóc. MySQL będzie musiał skanować tabelę porównującą łańcuch znaków o numerze anothertable
dla każdego wiersza w table
.
Czy byłoby to w jakiś sposób szybsze lub lepsze? –
Tak, jeśli pole i wartość są indeksowane, będzie znacznie szybciej –
Porównałem te dwa, ten jest 4 razy szybszy od pierwszego. –