【问题标题】:Need to filter data based on column value in phpmyadmin需要根据phpmyadmin中的列值过滤数据
【发布时间】:2015-09-10 12:46:27
【问题描述】:

我需要根据列值数据库记录执行查询。以下是一些当前值:

id 列名 ------------------ 5 30 6 39 2 10 1 38 9 54 3 37

如果我通过了 39 和 54,它应该显示如下输出:

id 列名 ------------------ 6 39 2 10 1 38 9 54

查询:

select CONVERT(column_name as CHAR(50)) as column_name from table name where CONVERT(column_name as CHAR(50)) >= 39 AND CONVERT(column_name as CHAR(50)) <=38

【问题讨论】:

  • 那为什么会显示 10 呢?我不明白你试图得到什么结果
  • 在什么基础上你想用 column_name 和 10 显示记录
  • select CONVERT(column_name as CHAR(50)) as column_name from table name where CONVERT(column_name as CHAR(50)) >= 39 AND CONVERT(column_name as CHAR(50))
  • 请不要使用 cmets 进行讨论。使用所需的附加信息编辑您的问题。
  • 我只是在编辑时将其添加到原始帖子中

标签: php sql phpmyadmin


【解决方案1】:

您的查询是正确的,但需要进行一些修改。

这样使用:

SELECT CONVERT(`column_name`, CHAR(50)) as `column_name` from `table_name` WHERE CONVERT(`column_name`, CHAR(50)) >= 39 AND CONVERT(`column_name`, CHAR(50)) <=54;

欲了解更多信息,请访问:SQL server convert()Mysql convert()

【讨论】:

  • 认为你倒退了。他想要所有小于或等于 38 且大于或等于 39 的值,而不是介于两者之间。
  • @sadmicrowave 你应该参考这个问题。
  • 是的,我错过了什么? &gt;= 39&lt;= 38 ...?
  • 好吧,这就是我的问题,他的输出与他在查询中尝试执行的操作不匹配。他的查询说明他想要一些东西,而他的输出显示他想要别的东西——我不确定哪个是正确的。尽管如此,BETWEEN 无论如何都不会给他10 的结果,也不会给他 38 和 39...
  • 我不想过滤数字的 BETWEEN 值,我的值具有起始列值和结束列值,我需要记录这两个值
【解决方案2】:

没有 where 子句逻辑可以根据值 39 和 38 带来这些行。

如果 SELECT 总是按该顺序显示这些行,那么您可以开始考虑使用:

SELECT.... WHERE...   LIMIT x, 3...

【讨论】:

  • SELECT TOP 3 ... 如果MS SQL SERVER
  • 是的。只是假设这是一个真实的案例,并且这些台词可能/应该真的以这种方式出现......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 2023-03-13
  • 2017-08-15
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多