MySQL服务器版本,用于在id附近使用正确的语法

MySQL database Query:

SELECT * 
FROM (SELECT * 
      FROM (`static_package_data`) 
          LEFT JOIN package_interest pi ON static_package_data.id=pi.package_details_id 
      WHERE `package_availability_type` = 'all' 
            AND `admin_status` = 'ACTIVE' 
            AND `status` = 'ACTIVE' 
            AND static_package_data.package_price BETWEEN 2000 AND 5000
            AND WHERE 'static_package_data.session_id'='AE44278818'
      GROUP BY static_package_data.id 
      UNION ALL 
      SELECT *
      FROM (`static_package_data`) 
          LEFT JOIN package_interest pi ON  static_package_data.id=pi.package_details_id 
      WHERE `package_availability_type` ='range' 
          AND `admin_status` = 'ACTIVE' 
          AND `status` = 'ACTIVE' 
          AND `to_date` >= '2017-02-04'AND static_package_data.package_price BETWEEN 2000 AND 5000 
          AND WHERE 'static_package_data.session_id'='AE44278818'
      GROUP BY static_package_data.id 
      ) as dt LIMIT 0 , 10

The following query throw the next error:

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 WHERE 'static_package_data.session_id'='AE44278818' GROUP BY static_package_data.' at line 1

I added the session id from my existing query

Simple,

SELECT * 
FROM   ( 
                 SELECT    * 
                 FROM      (`static_package_data`) 
                 LEFT JOIN package_interest pi 
                 ON        static_package_data.id=pi.package_details_id 
                 WHERE     `package_availability_type` = 'all' 
                 AND       `admin_status` = 'ACTIVE' 
                 AND       `status` = 'ACTIVE' 
                 AND       static_package_data.package_price BETWEEN 2000 AND       5000 
                 AND 
                 WHERE     'static_package_data.session_id'='AE44278818' 
                 GROUP BY  static_package_data.id 
                 UNION ALL 
                 SELECT    * 
                 FROM      (`static_package_data`) 
                 LEFT JOIN package_interest pi 
                 ON        static_package_data.id=pi.package_details_id 
                 WHERE     `package_availability_type` ='range' 
                 AND       `admin_status` = 'ACTIVE' 
                 AND       `status` = 'ACTIVE' 
                 AND       `to_date` >= '2017-02-04' 
                 AND       static_package_data.package_price BETWEEN 2000 AND       5000 
                 AND 
                 WHERE     'static_package_data.session_id'='AE44278818' 
                 GROUP BY  static_package_data.id ) AS dt limit 0 , 
       10;

You only need one "WHERE" any thing after it should just be AND

2000 AND 5000 AND WHERE 'static_package_data.session_id'='AE4

should be

2000 AND 5000 AND 'static_package_data.session_id'='AE4

There are two extra WHERE clauses in your code along with other syntax errors such as single quotes around column names instead of backticks.

SELECT 
    *
FROM
    (SELECT 
        *
    FROM
        `static_package_data`
    LEFT JOIN package_interest pi ON static_package_data.id = pi.package_details_id
    WHERE
        `package_availability_type` = 'all'
            AND `admin_status` = 'ACTIVE'
            AND `status` = 'ACTIVE'
            AND `static_package_data`.package_price BETWEEN 2000 AND 5000
            AND `static_package_data`.`session_id` = 'AE44278818'
    GROUP BY static_package_data.id UNION ALL SELECT 
        *
    FROM
        `static_package_data`
    LEFT JOIN package_interest pi ON static_package_data.id = pi.package_details_id
    WHERE
        `package_availability_type` = 'range'
            AND `admin_status` = 'ACTIVE'
            AND `status` = 'ACTIVE'
            AND `to_date` >= '2017-02-04'
            AND `static_package_data`.package_price BETWEEN 2000 AND 5000
            AND `static_package_data`.`session_id` = 'AE44278818'
    GROUP BY `static_package_data`.id) AS dt
-- Consider adding an order by clause here --
LIMIT 0 , 10

Also, consider adding order by clause to your query when using limit or else any 10 rows will be fetched.