我正在尝试获取一些数据,在表中,有一个名为" sysload"的字段。但是,它是var(字符串)类型。其中的数据类似于" 0.0,0.2,0.5和#34;三个数字用逗号分隔。但是,在sql中,我只需要最后一个数字(在这个例子中:0.5)来比较"其中"。那我怎么用呢?我的代码:
$termquery=mysql_query("SELECT a.terminal FROM terminal_server_log a
inner join
(
SELECT terminal, MAX(timestamp) timestamp
FROM terminal_server_log
group by terminal
) b on (b.terminal=a.terminal and a.timestamp=b.timestamp)
WHERE explode(',', sysload)[2]>$number");
最后一行是最重要的一行,我想与' $ number'进行比较,但似乎我无法使用' explode'。感谢
答案 0 :(得分:0)
PHP函数在SQL查询中不起作用。
您可以从查询中删除此过滤器并在php端过滤,或者您可以使用某些mysql字符串函数创建自定义爆炸函数。
在这个链接中有一个例子:(我没有检查它是否正常工作) Equivalent of explode() to work with strings in MySQL
答案 1 :(得分:0)
您可以使用正则表达式来匹配sysload列的最后一个元素:https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-instr
另请参阅CAST()函数,因为提取的子字符串应转换为数字值,以便与数字进行比较。