gpt4 book ai didi

mysql - SQL 使用 LIKE 可能出现语法错误

转载 作者:行者123 更新时间:2023-11-29 11:23:51 24 4
gpt4 key购买 nike

出现 SQL 错误,相信它位于 LIKE 语句附近,但不完全确定原因。

SELECT submit_time                                              AS datetime, 
Max(IF(field_name = 'first-name', field_value, NULL)) AS fName,
Max(IF(field_name = 'submission_id', field_value, NULL)) AS id
FROM wp_cf7dbplugin_submits
WHERE form_name = 'Personal Info'
AND ( Max(IF(field_name = 'submission_id', field_value, '')) LIKE '%4%' )
GROUP BY submit_time
ORDER BY Max(IF(field_name = 'submission_id', field_value, '')) DESC
LIMIT 0, 40

你不能像这样使用LIKE吗?如何重写这个查询?

Database Table snapshot

请注意:submit_time 并不总是不同。 submit_time 指的是表单提交的时间,除了 submission_id 之外,它还包含许多其他 field_name 行。此外,field_value 的类型为 varchar,因此尽管它包含整数值,但它仍然是一个字符串。

最佳答案

问题是您尝试在分组发生之前使用的查询部分中使用分组函数。您需要将该条件移至having 子句。此外,由于您已经在选择中执行 MAX(IF(...)) 操作,因此您可以引用该字段:

SELECT submit_time AS datetime,
...,
MAX(IF(field_name = 'submission_id', field_value, NULL)) AS id,
...
FROM wp_cf7dbplugin_submits
WHERE form_name = 'Personal Info'
GROUP BY submit_time
HAVING id LIKE '%4%'
ORDER BY id DESC LIMIT 0, 40

关于mysql - SQL 使用 LIKE 可能出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38535917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com