Попытка удалить bit.ly URL в конце строки SQL - PullRequest
2 голосов
/ 17 мая 2019

Попытка удалить URL http://bit.ly в конце строки SQL с помощью TRIM или REPLACE и т. Д.

Я пробовал TRIM, REPLACE и несколько других.

Вот пример строки:

"ПРЕДУПРЕЖДЕНИЕ ПОТОКА было издано для округа Скотт. Наводнение на большой территории или реке неизбежно или происходит. http://example.com/2Vzjxbe"

Итак, мне нужно найти строку «http», а затем удалить все из «h» в http и после. Таким образом, результирующая строка будет иметь вид:

«ПРЕДУПРЕЖДЕНИЕ ПОТОКА было издано для округа Скотт. Наводнение на большой территории или реке неизбежно или происходит».

Я беру переменную с именем message из таблицы outgoing_messages

Ответы [ 3 ]

3 голосов
/ 17 мая 2019

, если URL-адрес всегда находится в конце строки, плюс вы не хотите изменять запрос, тогда вы можете создать новую строку, используя регулярное выражение, заменить

<cfset stringWithoutLink = reReplaceNoCase(string, "\s*https?://.+$", "", "all") />

, если URL-адрес не всегдав конце строки это может быть сложно, поскольку существует некоторая двусмысленность относительно того, какие символы являются частью URL-адреса по сравнению с текстом, который может быть прямо против него.Вот разумный пример, и вы можете настроить символ, который считается частью URL-адреса (примечание: если упрощенный URL-адрес похож на bit.ly, то это проще)

<cfset stringWithoutLink = reReplaceNoCase(string, "\s*https?://[a-z0-9/_-]+", "", "all") />
1 голос
/ 17 мая 2019

Вы можете использовать манипуляции со строками - left() и charindex():

select left(str, charindex('http://', str + 'http://') - 1)
from (values ('A FLOOD WARNING has been issued for Scott County. Flooding over a large area or river is imminent or occurring. http://URL.com/2Vzjxbe')) v(str)

Обратите внимание, что это добавляет 'http://' к искомой строке. Код будет работать со строками без ссылки на URL.

1 голос
/ 17 мая 2019

Вы можете использовать left() с charindex():

select left(col, charindex('http://', col + 'http://') - 1)
from table t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...