我有这个SQL查询:
SELECT DISTINCT SUBSTRING_INDEX(value,'_',1) FROM category;
这对我的MySQL数据库没有任何问题。
我尝试将它与我的SQLite数据库一起使用,但它给出了有关SUBSTRING_INDEX命令的错误。所以,我使用了这个查询:
SELECT DISTINCT substr(value,'_',1) FROM category;
返回空结果集。然后,我尝试了这个查询:
SELECT DISTINCT value FROM category
这很好用。可能是什么问题?
答案 0 :(得分:0)
当然这已经很晚了,但对于其他可能会看到这个问题的人来说,让我把它放在这里。
sqlite substr
函数无法正常工作。
需要3个参数。第一个是您要搜索的字符串,而第二个和第三个是整数。
第二个参数表示要获取的子字符串的起始索引,第三个参数表示子字符串将具有的字符数。如果省略第三个参数,则子字符串将以第二个参数开头,并继续到提供的字符串的末尾。
最后请注意,索引是基于1的,即字符串中最左边的字符是索引1,而不是0。
可以在
找到更多特殊情况,例如参数为否定时答案 1 :(得分:0)
根据:https://sqlite.org/lang_corefunc.html#substr substr(X,Y,Z) 函数返回输入字符串 X 的子字符串,该子字符串以第 Y 个字符开头,长度为 Z 个字符。
语法 substr(字符串,开始,长度)
根据:https://sqlite.org/lang_corefunc.html
instr(X,Y) 函数查找字符串 X 中第一次出现的字符串 Y,并返回先前字符的数量加 1,如果在 X 中找不到 Y,则返回 0。
请在以下查询中对报告的案例进行罚款:
SELECT DISTINCT
SUBSTR(value, (INSTR(value, '_')+1), (LENGTH(value)-INSTR(value, '_')))
FROM category;
答案 2 :(得分:-1)
您不应该以使用它的方式使用SUBSTR。试着这样写:
SELECT DISTINCT SUBSTR(value,'_', 2) FROM category;
使用SUBSTR的最佳方法是以正确的方式设置它:
SELECT DISTINCT SUBSTR(value,'3', 1) FROM category; // Where 3 represents index from which you want to substring data