【问题标题】:Syntax error in automatically formed SQL query [closed]自动形成的 SQL 查询中的语法错误 [关闭]
【发布时间】:2010-06-30 19:00:38
【问题描述】:

我正在尝试生成一个用于智能搜索字段的查询,ala google 建议。

我无法直接形成查询,尽管我可以通过日志查看进行了哪些查询。

我已经发布了发送的查询,它有语法错误,但我不确定原因。

SELECT DISTINCT IF(guests.passport != '', Concat(guests.passport,
                                                          IF(
                                          guests.lastname !=
                                          ''
                                                   OR guests.passport!= '',
                                                          Concat
                                                          (' (',
                                                          IF(guests.lastname !=
                                                             '',
                                                          guests.lastname,
                                                          '{blank}')
                                                          , ', ',
                                                          IF(
                                                          guests.firstname != ''
                                                             , guests.passport,
                                                          '{blank}')
                                                             , ')'), '')),
                                IF(guests.lastname != ''
                    OR guests.passport!= '', Concat(IF(guests.lastname != '',
                                                    guests.lastname,
                                                    '{blank}'), ', ',
                                                                          IF(
                                             guests.passport!= '',
                                             guests.passport, '{blank}')),
                                ''
                ))              AS display,
                `guests`.`uuid` AS VALUE,
                as              secondary,
                guests.id       AS classname
FROM   guests
WHERE  ( guests.id = 0 )
       AND ( ( guests.firstname LIKE 'b%'
                OR guests.lastname LIKE 'b%'
                OR guests.passport LIKE 'b%' )
              OR (( guests.firstname LIKE 'b%'
                     OR guests.firstname LIKE '% b%'
                     OR guests.lastname LIKE 'b%'
                     OR guests.lastname LIKE '% b%'
                     OR guests.passport LIKE 'b%'
                     OR guests.passport LIKE '% b%' )) )
ORDER  BY IF(guests.passport != '', Concat(guests.passport,
                                              IF(guests.lastname != ''
                                                                OR
                                                 guests.passport!= '',
                                              Concat
                                              (' (',
                                              IF(guests.lastname != '',
                                              guests.lastname, '{blank}')
                                              , ', ',
                                                                        IF(
                                              guests.firstname != ''
                                                       , guests.passport,
                                              '{blank}')
                                                       , ')'), '')),
                    IF(guests.lastname != ''
              OR guests.passport!= '', Concat(IF(guests.lastname != '',
                                              guests.lastname,
                                                                       '{blank}'
                                              ), ', ',
                                       IF(
                                       guests.passport!= '', guests.passport,
                                       '{blank}'
                                       )),
                    ''
          ))
LIMIT  0, 8  

该查询是否有任何明显错误?

【问题讨论】:

  • 帮我们大家一个忙,在里面放一些空格,伙计。
  • Jacob:您需要考虑使用全文搜索来进行文本搜索 - 更快,更简洁...
  • 我无法控制生成的查询,因为我正在使用框架并且它是自动形成的。

标签: sql mysql mysql-error-1064


【解决方案1】:

看这部分:

WHERE () AND

() 不是有效的 WHERE 子句。

【讨论】:

  • 啊,谢谢你。我已经解决了这个问题,但仍然存在语法错误。我编辑了我的问题以避免发布新问题,但请告诉我是否应该回复并将您标记为原始问题的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多