Как выбрать названия, которые похожи на первые n символов строки? - PullRequest
1 голос
/ 28 марта 2019

Вот пример

Есть заголовки некоторых аниме:

|_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 символов.Поэтому я также не могу просто вставить первые 10 символов «Мой герой академии» в предложение WHERE title LIKE.

Я имею в виду что-то вроде этого:

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

Есть ли способсделать это с SQL?Заранее благодарю за любую помощь!

Ответы [ 7 ]

2 голосов
/ 28 марта 2019

для фильтрации строки по частичному фиксированному значению, которое вы можете использовать, например, оператор 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'  
0 голосов
/ 28 марта 2019

это может помочь вам qorks для моего postgray11.он думает, что будет hwlp для вашего mysql

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

демо здесь

0 голосов
/ 28 марта 2019

Используйте подстановочный знак (%):

SELECT title FROM table_name WHERE title LIKE "1234567890%"
0 голосов
/ 28 марта 2019
SELECT title FROM TABLE_NAME WHERE title LIKE '%'  + substring('AAA' , 0 ,2)

Первый параметр функции подстроки представляет вашу строку, второй начальный индекс и третий конечный индекс. Вы можете изменить конечный индекс, как хотите.

0 голосов
/ 28 марта 2019

Попробуйте это:

SELECT title FROM table_name WHERE title like "data structure%"
0 голосов
/ 28 марта 2019
WHERE SUBSTRING(title, 1, n) = 'aaaaaaaaa'
0 голосов
/ 28 марта 2019

Введите 10 символов следующим образом:

WHERE title LIKE 'aaaaaaaaaa%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...