Подтвердить что ты не робот

Оператор MySQL SELECT для "длины" поля больше 1

У меня есть поле LINK в моей таблице. Некоторые строки имеют ссылку, некоторые - нет.

Я хотел бы выбрать все строки, в которых присутствует LINK. (длина больше, чем X символов).

Как мне написать это?

4b9b3361

Ответ 1

Как насчет:

SELECT * FROM sometable WHERE CHAR_LENGTH(LINK) > 1

Здесь страница функций строки MySql (5.0).

Обратите внимание, что вместо LENGTH я выбрал CHAR_LENGTH, как если бы в данных, которые вам, вероятно, действительно интересны, сколько символов есть, а не сколько байтов памяти, которые они принимают, есть многобайтовые символы. Таким образом, для вышесказанного строка, в которой LINK является единственным двухбайтовым символом, не будет возвращена, тогда как при использовании LENGTH.

Обратите внимание, что если LINK - NULL, результат CHAR_LENGTH(LINK) также будет NULL, поэтому строка не будет соответствовать.

Ответ 2

select * from [tbl] where [link] is not null and len([link]) > 1

Для пользователя MySQL:

LENGTH([link]) > 1

Ответ 3

На всякий случай кто-то хочет найти, как в оракуле и пришел сюда (как я), синтаксис

select length(FIELD) from TABLE

на всякий случай;)

Ответ 4

Try:

SELECT
    *
FROM
    YourTable
WHERE
    CHAR_LENGTH(Link) > x