試試這個:
SELECT * FROM table WHERE "qwerty" NOT IN (column1,column2,column3,column4,etc)
又如:
-- this...
SELECT 'HELLO!' FROM tblx
WHERE 'JOHN' NOT IN (col1,col2,col3);
-- ...is semantically equivalent to:
SELECT 'HELLO!' FROM tblx
WHERE 'JOHN' <> col1
AND 'JOHN' <> col2
AND 'JOHN' <> col3;
數據來源:
如果您正在使用PostgreSQL,你可以做一個快捷方式欄:
select *
from
(
select
row(tblx.*)::text AS colsAsText,
translate(row(tblx.*)::text,'()','{}')::text[]
as colsAsArray
from tblx
) x
where 'JOHN' <> ALL(colsAsArray)
直播測試:http://www.sqlfiddle.com/#!1/8de35/2
的Postgres可以從陣列讓行,'JOHN' <> ALL
相當於::
where 'JOHN' NOT IN (SELECT unnest(colsAsArray))
現場測試:http://www.sqlfiddle.com/#!1/8de35/6
如果上述真的是你想實現什麼,搜索是多少如果您使用全文搜索,則效果更好
對於MySQL:
select
@columns := group_concat(column_name)
from information_schema.columns
where table_name = 'tblx'
group by table_name;
set @dynStmt :=
concat('select * from tblx where ? NOT IN (', @columns ,')');
select @dynStmt;
prepare stmt from @dynStmt;
set @filter := 'JOHN';
execute stmt using @filter;
deallocate prepare stmt;
現場測試:http://www.sqlfiddle.com/#!2/8de35/49
如果您可以提供一些示例數據,表格結構和預期輸出,將會有所幫助。 –
我試圖根據我對你想要什麼的理解來澄清你的問題標題,如果我錯了,隨時撤銷我的編輯。 –
你可以使用PHP(或者你喜歡的任何東西)還是需要使用純MySQL? – Kaivosukeltaja