簡體   English   中英

MySQL查詢在多列中選擇數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM