如何选择类似于字符串的前n个字符的标题?

时间:2019-03-28 06:35:02

标签: mysql sql

这是一个例子

一些动漫的标题:

|_title_|
|My hero Academia|
|My hero Academia Season 2|
|My hero Academia Season 3|
|My hero Academia Season 4|

我想选择包含第一条记录的前10个字符的标题,因此在此示例中为“我的英雄学院”

重要的是它必须是前N个字符,例如10、15、20。因此,SELECT title FROM tablename WHERE title LIKE "%My hero Academia%"不是我要寻找的解决方案。

也:这只是一个例子,还有许多其他标题,我并不总是知道前10个字符是什么。因此,我也不能简单地在WHERE title LIKE子句中输入“我的英雄学院”的前10个字符。

我的意思是这样的:

SELECT title FROM table_name WHERE title LIKE the first 10 characters of a given string

有没有办法用SQL做到这一点?谢谢您提前提供帮助!

7 个答案:

答案 0 :(得分:2)

要过滤部分固定值的字符串,可以像运算符like 'yourstring%'这样使用,例如:

    SELECT title 
    FROM your_table  
    WHERE title LIKE 'thefirst10%'  

或使用类似substr或left的字符串功能

    SELECT title 
    FROM your_table  
    WHERE left(title,10) = 'thefirst10'  

    SELECT title 
    FROM your_table  
    WHERE substr(title,1,10) = 'thefirst10'  

答案 1 :(得分:0)

像这样输入10个字符:

WHERE title LIKE 'aaaaaaaaaa%'

答案 2 :(得分:0)

WHERE SUBSTRING(title, 1, n) = 'aaaaaaaaa'

答案 3 :(得分:0)

尝试一下:

SELECT title FROM table_name WHERE title like "data structure%"

答案 4 :(得分:0)

SELECT title FROM TABLE_NAME WHERE title LIKE '%'  + substring('AAA' , 0 ,2)

子字符串函数的第一个参数代表您的字符串,第二个开始索引和第三个结束索引。您可以根据需要更改结束索引。

答案 5 :(得分:0)

使用通配符(%):

SELECT title FROM table_name WHERE title LIKE "1234567890%"

答案 6 :(得分:0)

这可以帮助您为我的postgray11增光添彩。 ithink会为您的mysql设置hwlp

select * from t1 where title LIKE CONCAT((select * from t1 LIMIT 1),'%');

demo here