我有一个完美的以下mysql查询,但是当我在sqlite数据库上查询相同的查询时,它显示的行数超出预期。
SELECT word,point,length(word) as len
FROM table
WHERE
(word LIKE '%A%' OR word LIKE '%P%' OR word LIKE '%L%' OR word LIKE '%E%')
AND
(length(word)<=5)
order by point desc
Mysql查询产生23行,而sqlite显示10693行,这是不期望的。在sqlite平台上有什么需要改变的吗? 提前谢谢。
答案 0 :(得分:0)
实际上我发现查询在mysql和sqlite上都无法正常工作。我想让它返回仅包含字母A,P,P,L,E的行(例如,APPEL,APPLE,PEPLA等),但查询显示的字由A,P,P以外的字母组成, L,E(例如,JAZZY,JUPON,PLACK等)。我已经使查询包含非常接近的预期结果。可以根据需要使用php或任何语言过滤掉剩余的内容。
select * from (SELECT word, point, ( ( LENGTH(word) - LENGTH( REPLACE ( word, "A", "") ) ) + ( LENGTH(word) - LENGTH( REPLACE ( word, "P", "") ) ) + ( LENGTH(word) - LENGTH( REPLACE ( word, "L", "") ) ) + ( LENGTH(word) - LENGTH( REPLACE ( word, "E", "") ) ) ) AS COUNT FROM table where length(word)<= length("APPLE") ORDER BY `table`.`word` ASC ) as inner_table WHERE length(word)=COUNT