[英]Regex Search with delimiters in and Mysql
我正在嘗試將在PHP中正常工作的正則表達式轉換為MySQL。 MySQL不允許負前瞻(?!)
因此我需要一種解決方案或解決方法
我的數據庫列數據是這樣的字符串:
書名:書名¬#描述:書名¬#價格:$ 10.57
我可以在PHP中使用的正則表達式是
(^ |¬#¬)title:(((?!¬#¬)。)* Book((?!¬#¬)。)*)
但是在MySQL中,我很掙扎。 任何人有任何意見或建議
MySQL無法將REGEX應用於SELECT子句中col的內容。
在這種情況下,您可以使用SUBSTRING函數提取您的內容。
SELECT
SUBSTRING_INDEX(
LEFT( content, LOCATE('?#?description', content)-1 ), 'title:', -1) AS title,
SUBSTRING_INDEX(
LEFT( content, LOCATE('?#?Price', content)-1 ), 'description:', -1) AS description,
SUBSTRING_INDEX(
RIGHT( content, LOCATE('?#?Price', content)-1 ), 'Price:', -1) AS price
FROM test_table
SQLFiddle
一旦我想到像nhahtdh建議的那樣進行拆分,解決方案就很簡單。
select
SUBSTRING_INDEX(SUBSTR(table.data, LOCATE('title:', table.data)+6), '¬#¬', 1) regexp '[[:<:]]Book[[:>:]]' AS hasResult
from
table;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.