繁体   English   中英

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

[英]How To Select all row from mysql table that contains atleast one value greater than search value?

例如,我要从下表中选择“ 数据包含的值大于或等于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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM