自动形成的SQL查询中的语法错误 [英] Syntax error in automatically formed SQL query
本文介绍了自动形成的SQL查询中的语法错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试生成一个查询,供智能搜索字段使用,阿拉谷歌建议.
I am trying to generate a query for use with a smart search field, ala google suggest.
尽管我可以查看通过日志进行的查询,但是我无法直接构成查询.
I can not form the query directly, although I can see what query was made via the logs.
我已经发布了要发送的查询,该查询存在语法错误,但是我不确定为什么.
I have posted the query that gets sent, which has a syntax error but I am unsure why.
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
该查询中是否存在明显错误?
Is there any glaring error in that query?
推荐答案
查看此部分:
WHERE () AND
()
不是有效的WHERE子句.
()
is not a valid WHERE clause.
这篇关于自动形成的SQL查询中的语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文