SQL SELECT, где ячейка имеет определенную длину и содержит определенные символы - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь создать инструкцию SELECT, которая выбирает строки, где NAME - макс.5 символов и.находится в ИМЯ.Я хочу только первое, поэтому я включаю в оператор LIMIT 1.

Я работал со следующим

searchstring = "."
sql = "SELECT * FROM Table WHERE NAME LIKE %s LIMIT 1"
val = (("%"+searchstring+"%"),)
cursor.execute(sql, val)

Но я не уверен, как включить длинуNAME в моем утверждении.

Моя «таблица» выглядит следующим образом:

ID     NAME
1      Jim
2      J.
3      Jonathan
4      Jack M.
5      M.S.

Таким образом, исходя из приведенной выше таблицы, я ожидаю, что будут выбраны строки 2 и 5.Я мог бы выделить все и просмотреть их.Но так как я хочу только первое, я думаю, что предпочел бы оператор SQL?

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 01 января 2019

Вы можете использовать функцию CHAR_LENGTH вместе с LIKE:

SELECT * FROM Table WHERE name LIKE '%.%' AND CHAR_LENGTH(name) <= 5 LIMIT 1
0 голосов
/ 01 января 2019

Oracle SQL

SELECT * FROM Table WHERE name LIKE '%.%' AND LENGTH(name) < 6 and rownum < 2

Основываясь на языке SQL (Oracle, MySQL, SQL Server и т. Д.), Используйте

длина () или char_length ()

rownum или предел

0 голосов
/ 01 января 2019

Попробуйте LEN () Выберите LEN ( Строка результата );Это вернет длину строки.но это будет учитывать и пробелы.Попробуйте удалить его с помощью LTRIM ().

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