[英]mysql query for selecting data in multiple columns
我有10列的表格,我想檢查MySQL查詢的where
子句中的輸入值。
我想做這樣的事情。 但是,當我使用此查詢時,出現錯誤。
例如 :
SELECT * FROM user_data
where poll_title='$poll_title'
and '$voter' IN (user_vote_1,user_vote_2,user_vote_3...user_vote_10)
order by idpoll ASC
user_vote_1到10(數據庫中的值為空),我只想從具有$voter
值的列中檢索該行。
我認為您需要此比較(不確定課程):-
SELECT * FROM user_data
where poll_title = "$poll_title"
and (user_vote_1 = "$voter"
OR user_vote_2 = "$voter"
OR user_vote_3 = "$voter"
OR user_vote_4 = "$voter"......OR user_vote_10 = "$voter")
order by idpoll ASC
如果我了解您想要做什么-僅返回帶有值的列-那么合並會完成這項工作嗎? 假定user_vote_n中的值將與您要查找的值匹配或為null,因為Coalesce返回第一個非null參數。
(未試)
從user_data中選擇coalesce(user_vote_1,user_vote_2,user_vote_3,)作為UserVote,其中coalesce(user_vote_1,user_vote_2,user_vote_3,)='$ voter';
除此之外,這看起來像可以進行規范化的結構-單個“ user_vote”列和單個“ user_vote_number”列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.