【问题标题】:how to get numeric values form sql query如何从sql查询中获取数值
【发布时间】:2016-08-03 08:07:57
【问题描述】:

我的问题是我有一个存储报价的表,我只想显示那些有 50% 的记录(其中的子字符串 '50%')。

这是我的表架构: 一个示例记录是:

埃塞尔世界门票等优惠 50%。
Rs 平价 50% 折扣
2495 及以上。美国马球 - 高达 50% 的折扣

我将如何编写 SQL 查询来选择这些?字段的列名叫做coupon_name

【问题讨论】:

  • 使用通配符%
  • 每个字符串的格式都一样吗? % 总是两位数吗?
  • 表和列的结构是什么?和查询你试过了吗?

标签: php mysql sql-server


【解决方案1】:

如愿以偿..

 select * from table
    where coupon_name like '%50[%]%'

这将给出所有记录,如低于 250 的记录,这可能是有效的,因为百分比不能大于 100

sakfjfjk50%sfjbsadjkfbjksdf
sakfjfjk250%sfjbsadjkfbjksdf

【讨论】:

  • 不应该喜欢%50\%%吗?
  • 它工作正常,但我只需要只有 50% 的记录
【解决方案2】:

您需要包含“50%”的记录,您可以使用:

SELECT *
FROM YourTable
WHERE coupon_name LIKE '%50[%]%'

或者使用ESCAPE:

SELECT *
FROM YourTable
WHERE coupon_name LIKE '%50\%%' ESCAPE '\'

或者:

SELECT *
FROM YourTable
WHERE coupon_name LIKE '%50|%%' ESCAPE '|'

第三个应该可以在 MySQL 和 SQL Server 中使用。

【讨论】:

  • #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'ELECT * FROM Vcom WHERE coupon_title LIKE '%50\%%' LIMIT 0 , 30' 附近使用正确的语法
  • SELECT * FROM YourTable WHERE coupon_name LIKE '%50[%]%' 返回零行
  • @pawal 仍然是零行 SELECT * FROM Vcom WHERE coupon_title LIKE '%50|%%'
猜你喜欢
  • 2015-09-30
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 2019-03-07
  • 1970-01-01
  • 2020-10-24
相关资源
最近更新 更多