让 SQL 使用选择表单元素,逗号分隔

Posted

技术标签:

【中文标题】让 SQL 使用选择表单元素,逗号分隔【英文标题】:get SQL to work with a select form element, comma delimited 【发布时间】:2012-08-15 13:04:45 【问题描述】:

我试图让用户仅查看某些记录,其中查询变量由用户使用表单给出。该表单包含一个日期选择器和 3 个选择元素,用户可以在其中选择多个选项,允许的选项由 SQL 使用SELECT DISTINCT 填充。

日期选择有效,但 SELECT 列表仅在选择一个值时有效。我觉得问题是由“结果”页面上的错误 SQL 引起的。我不知道如何使 SQL 使用逗号分隔的字符串(例如:user1、user2、user3 等。这是我的 SQL 查询:

SELECT *
FROM exp_core
WHERE `time` >= startdate 
AND `time` <= enddate 
AND user LIKE uservar 
AND type LIKE typevar 
AND trnsact LIKE trnsactvar

uservartypevartrnsactvar 是逗号分隔的表单变量。谁知道如何让 SQL 将这些值视为单独的值?

【问题讨论】:

这可以在 mysql 中完成,但在 php 中更容易完成。你在使用 php 吗?如果没有,请查看:***.com/questions/11691942/… 【参考方案1】:

对于多个变量,您必须使用 IN 运算符。

SELECT *
FROM exp_core
WHERE `time` >= startdate 
AND `time` <= enddate 
AND user IN (uservar) 
AND type IN (typevar) 
AND trnsact IN (trnsactvar)

【讨论】:

恐怕这行不通。它仍然显示所有内容(或什么都不显示)。 如果传递的值不是整数,则必须将每个值括在引号中。

以上是关于让 SQL 使用选择表单元素,逗号分隔的主要内容,如果未能解决你的问题,请参考以下文章

VBA:为从 SQL Server 数据库中选择的十进制数获取逗号分隔符而不是点

多对多字段的 Django 表单上的逗号分隔文本而不是多项选择

如何让表单元素“记住”选择?

jQuery选择器

回显逗号分隔列表的PHP表单[关闭]

CSS 专业的技巧