【发布时间】:2016-04-30 18:46:50
【问题描述】:
我有 2 个可能使用不正确的 SQL 查询:
SELECT
`contract_id`,
`contract_title`,
`contract_description`,
`contract_postalcode`,
FROM
`gmw_contracts`
WHERE contract_title COLLATE UTF8_GENERAL_CI REGEXP "test"
OR contract_description COLLATE UTF8_GENERAL_CI REGEXP "test"
AND contract_postalcode IN (
53111,53113,53129,53175,53225,53227,53229,53757
) ;
SELECT
COUNT(`contract_postalcode`)
FROM
`gmw_contracts`
WHERE `contract_title` COLLATE UTF8_GENERAL_CI REGEXP "test"
OR `contract_description` COLLATE UTF8_GENERAL_CI REGEXP "test"
AND `contract_postalcode` IN (
53111,53113,53129,53175,53225,53227,53229,53757
) ;
第一个查询选择具有给定参数(如关键字和邮政编码等)的行,但我没有得到所需的结果。似乎完全忽略了邮政编码。
第二个查询应该计算它,以便我可以在 PHP 中对结果进行分页(但我不想计算 PHP)
第一个查询的解决方案:我可以使用 HAVING 而不是 AND。但我也需要使用计数查询来完成。在此示例中,COUNT 和 HAVING 不能一起使用。
你有什么提示或解决办法吗?
【问题讨论】:
-
在您的第一个查询中,您能在此处看到逗号吗,
...`contract_postalcode`, FROM ...? -
哦,是的,你是对的。它是一个复制和粘贴错误。我缩短了对 stackoverflow 的查询。
标签: php mysql count pagination