如果未在SQL中找到行,则回退

时间:2018-10-18 15:49:58

标签: sql sqlite

Sqlite是否有一种方法(我在这里使用spellfix模块,但这个问题很普遍)具有:

SELECT word FROM myindextable WHERE word MATCH "hsqfkjsfq" AND top=1

返回匹配的单词(如果存在),并返回原始单词(如果不存在)“ hsqfkjsfq”?

2 个答案:

答案 0 :(得分:1)

如果您只期望一行,则可以使用聚合:

SELECT COALESCE(MAX(word), 'hsqfkjsfq')
FROM myindextable
WHERE word MATCH 'hsqfkjsfq' AND top = 1;

我认为您的病情过于简单。没有通配符,则等效于:

select 'hsqfkjsfq';

答案 1 :(得分:1)

如果您从不希望从原始查询返回多行,则可以使用compound query添加另一行,如果找不到匹配项,则为第一行:

SELECT word FROM myindextable WHERE word MATCH 'hsqfkjsfq' AND top=1
UNION ALL
SELECT 'hsqfkjsfq'
LIMIT 1;