php - 如何从mysql表中选择包含至少一个大于搜索值的值的所有行?

标签 php mysql mysqli

例如我想从下表中选择数据包含大于或等于5的值的所有。即第 11、13、14 和 16 行。

╔════╦═══════════════════╗
║ ID ║ Data              ║
╠════╬═══════════════════╣
║ 10 ║ 2 or 3            ║
║ 11 ║ 5 and 6           ║
║ 12 ║ 3 or 4            ║
║ 13 ║ 5 or 6(Optional)  ║
║ 14 ║ 5                 ║
║ 15 ║ 1 or 2            ║
║ 16 ║ 6 (Optional) or 3 ║
╚════╩═══════════════════╝

最佳答案

我像这样解决了这个问题。

CREATE FUNCTION explode(str VARCHAR(255), delim VARCHAR(12), pos INT)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(str, delim, pos),
       LENGTH(SUBSTRING_INDEX(str, delim, pos-1)) + 1),
       delim, '');


SELECT ID,REPLACE(Data,'(Optional)','') AS data FROM `Temp` WHERE data >= 5 OR TRIM(explode(explode(data,'and',1),'or',1)) >= 5 OR TRIM(explode(explode(data,'and',1),'or',2) ) >=5 OR TRIM(explode(explode(data,'and',2),'or',1) ) >=5 OR TRIM(explode(explode(data,'and',2),'or',2) ) >=5

关于php - 如何从mysql表中选择包含至少一个大于搜索值的值的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46514565/

相关文章:

php - 如何从mysql显示平均值

php - 在 Symfony 2 中为集合的每个项目指定不同的验证组?

mysql - 如何从 SQL 中的字符串中提取日期?

php - MySQL - 获取平均值不起作用

php - 即使在调用 store_result 之后 $stmt->num_rows 返回 0

logging - 如何将 PHP 错误写入 stderr?

php - mysqli 和 php 创建一个不存在的表

php - 从sql查询结果格式化数组

MySql 正则表达式测试

php - 如何在 mysqli 中开始和结束事务?