我正在尝试获取一些数据,在表中,有一个名为"sysload"的字段。但是,它是一个变量(字符串(类型。其中的数据就像"0.0,0.2,0.5",三个数字用逗号分隔。但是,在sql中,我只需要最后一个数字(在本例中:0.5(即可在"where"中进行比较。那么我该如何使用它呢?我的代码:
$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"进行比较,但似乎我不能使用"爆炸"。谢谢
您可以使用正则表达式来匹配 sysload 列的最后一个元素:https://dev.mysql.com/doc/refman/8.0/en/regexp.html#function_regexp-instr
另请查看 CAST(( 函数,因为提取的子字符串应转换为数值以允许与数字进行比较。
PHP 函数在 SQL 查询中不起作用。
您可以从查询中删除此过滤器并在 php 端进行过滤器,也可以使用一些 mysql 字符串函数创建自定义分解函数。
在此链接中有一个示例:(我没有检查它是否有效( 相当于 explode(( 来处理 MySQL 中的字符串