【问题标题】:get SQL to work with a select form element, comma delimited让 SQL 使用选择表单元素,逗号分隔
【发布时间】: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 select where comma delimited


【解决方案1】:

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

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

【讨论】:

  • 恐怕这行不通。它仍然显示所有内容(或什么都不显示)。
  • 如果传递的值不是整数,则必须将每个值括在引号中。
猜你喜欢
  • 2022-11-23
  • 2012-06-29
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
相关资源
最近更新 更多