在sql查询字段中怎么去判断是以某字母开头
填空题的题号tlid是以B开头如B01
简答题的题号tlid是以A开头如A01
我想通过对tlid的首字母的判断这个题号是什么类型的题并去查相应的表中的题目内容
各位有谁知道怎么实现吗 展开
方法1:用%即可达到。
例如:SELECT*FROMusersWHEREemaillike"%b@email.com%"。
方法2:使用mysql字符串函数find_in_set();
SELECT*FROMusersWHEREfind_in_set('aa@email.com',email);
注意,mysql字符串函数find_in_set(str1,str2)返回str2中str1的位置索引,str2必须被分割成“,”。
方法3:多值模糊查询,使用mysql正则:REGEXP。
这个方法相当于(比如'%1%'或'%3%'或'%5%')。
从'by_content'中选择*,其中标题REGEXP'(1|,3|5)'。
扩展资料:
Mysql字符串函数:FIND_IN_SET()
语法:
strlistFIND_IN_SET(STR)
第一个参数STR是要查找的字符串。
第二个参数strlist是要搜索的字符串的逗号分隔列表。
如果字符串STR位于由N个子链组成的字符串列表中,则返回值的范围为1到N。
字符串列表是由','符号分隔的子链组成的字符串。如果第一个参数是常量字符串,第二个参数是类型集列,则FIND_IN_SET()函数被优化为使用位。
如果STR不在strlist中,或者strlist是空字符串,则返回值为0。如果任何参数为空,则返回值为空。当第一个参数包含逗号(',')时,此函数将无法正常工作。
-- 查找以A或B或C开头的基因
SELECT
id,
symbol
FROM
vdb_gene
WHERE
FIND_IN_SET(SUBSTRING(`symbol`,1,1), 'A,B,C')
select distinct tlid,题目内容 from 表 where substring(tlid,1,1)=substring('S01',1,1)
至于substring('S01',1,1)里面的S01可以根据你所用的语言来获得