1

我正在 php-mysql 框架中执行一个 mysql 查询,该框架涉及 2 个查询结果的交集。但它没有执行。可能需要更改 INTERSECT 操作的语法。你能告诉我错误在哪里吗?

SELECT p.*
FROM property p
    , property_type pt
    , location l
    , city c
WHERE p.STATUS = 1
    AND p.prop_id = '1'
    AND p.property_type = 'Sale'
    AND (
        pt.prop_name LIKE '%dlf%'
        OR p.furnish LIKE '%dlf%'
        OR p.description LIKE '%dlf%'
        OR p.bed LIKE '%dlf%'
        OR p.term_condition LIKE '%dlf%'
        OR p.bedroom LIKE '%dlf%'
        OR p.property_type LIKE '%dlf%'
        OR c.city_name LIKE '%dlf%'
        OR (
            (
                p.location_id = l.loct_id
                AND l.loct_name LIKE '%dlf%'
                )
            )
        )
    AND p.prop_id = pt.prop_id
    AND p.city = c.city_id

INTERSECT

SELECT p.*
FROM property p
    , property_type pt
    , location l
    , city c
WHERE p.STATUS = 1
    AND p.prop_id = '1'
    AND p.property_type = 'Sale'
    AND (
        pt.prop_name LIKE '%sohna%'
        OR p.furnish LIKE '%sohna%'
        OR p.description LIKE '%sohna%'
        OR p.bed LIKE '%sohna%'
        OR p.term_condition LIKE '%sohna%'
        OR p.bedroom LIKE '%sohna%'
        OR p.property_type LIKE '%sohna%'
        OR c.city_name LIKE '%sohna%'
        OR (
            (
                p.location_id = l.loct_id
                AND l.loct_name LIKE '%sohna%'
                )
            )
        )
    AND p.prop_id = pt.prop_id
    AND p.city = c.city_id
ORDER BY sortnum LIMIT 0 , 30

但它显示错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'intersect Select p.* from property p,property_type pt,location l,city c where p.' at line 1

你能告诉我正确的语法是什么吗?

4

1 回答 1

2

MySQL 不支持INTERSECT,使用WHEREorJOIN代替。查看http://gablog.eu/online/node/33以获取解决方案。

于 2012-09-27T08:36:46.717 回答