如何使用循环编写动态sql查询

nmpmafwu  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(319)


.

我正试图编写一个查询来从数据库中获取数据,但没有得到。我要取宪法第三号的头衔。对于第三选区,我必须展示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%'));

这是我必须动态编写的等式,因为我不知道用户选择了什么。我不能进去。请帮我解决这个问题。
谢谢

e5nszbig

e5nszbig1#

你可以用 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 功能可以帮助,但我们应该避免依赖它。

相关问题