[英]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.