簡體   English   中英

如何使用循環編寫動態SQL查詢

[英]How to write Dynamic sql query using loops

請檢查圖像 在此處輸入圖片說明

我正在嘗試編寫查詢以從數據庫中獲取數據,但沒有得到。 我想獲取ConstituencyId 3的標題。對於第三個選區,我必須顯示4個不同的標題。 如果用戶選擇了第2和第3選區,則我必須顯示第2和第3選區的標題。

SELECT N1.Id, N1.Title From NewsContent N1
Where N1.Id > 0 and  
(N1.ConstituencyId like ('%2%') OR N1.ConstituencyId Like ('%3') OR N1.ConstituencyId like ('%4%'));

這是我必須動態編寫的equery,因為我不知道用戶選擇什么。 沒有動態進入。 請幫助我。

謝謝

您可以在此處使用FIND_IN_SET ,例如

SELECT N1.Id, N1.Title
FROM NewsContent N1
WHERE
    N1.Id > 0 AND
    FIND_IN_SET('2', N1.ConstituencyId) > 0 AND
    FIND_IN_SET('3', N1.ConstituencyId) > 0;

但是請注意,將CSV存儲在ConstituencyId列中意味着您的表沒有完全規范化。 由於上述原因,這使查詢變得困難,並且更新更加困難,因此這是不理想的。 幸運的是,MySQL具有可以提供幫助的FIND_IN_SET函數,但我們應避免依賴它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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