在sql查询字段中怎么去判断是以某字母开头

2024-11-22 09:48:51
推荐回答(3个)
回答(1):

方法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。如果任何参数为空,则返回值为空。当第一个参数包含逗号(',')时,此函数将无法正常工作。

回答(2):

-- 查找以A或B或C开头的基因
SELECT
    id,
    symbol 
FROM
    vdb_gene 
WHERE
    FIND_IN_SET(SUBSTRING(`symbol`,1,1), 'A,B,C')

回答(3):

substring 函数返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串
select distinct tlid,题目内容 from 表 where substring(tlid,1,1)=substring('S01',1,1)

至于substring('S01',1,1)里面的S01可以根据你所用的语言来获得