首頁 > 資料庫 > mysql教程 > 如何從 MySQL 文字欄位中提取連續數字並應用附加條件?

如何從 MySQL 文字欄位中提取連續數字並應用附加條件?

Barbara Streisand
發布: 2024-12-18 13:15:19
原創
677 人瀏覽過

How to Extract Consecutive Digits from a MySQL Text Field and Apply Additional Criteria?

從MySQL 文字欄位擷取連續數字

在MySQL 中,以下查詢可以偵測包含2 位元數字的文字欄位:

SELECT `id`, `originaltext` FROM `source` WHERE `originaltext` regexp '[0-9][0-9]'
登入後複製

但是,要將這些數字作為單獨的欄位進行操作,需要進一步處理。這裡有兩個可能的解決方案:

使用 LIB_MYSQLUDF_PREG

LIB_MYSQLUDF_PREG 是增強正規表示式功能的 MySQL 函式庫。它引入了像 PREG_CAPTURE 這樣的函數,可以從字串中提取匹配項。

要使用此程式庫,您必須將其安裝到 MySQL 伺服器中。安裝後,您可以使用以下查詢來提取連續數字:

SELECT `id`, PREG_CAPTURE('[0-9][0-9]', `originaltext`) AS `digits` FROM `source`
登入後複製

使用自訂MySQL 函數

或者,您可以定義一個自訂MySQL 函數執行提取。例如,以下函數將提取第一個最長的匹配數字序列:

CREATE FUNCTION REGEXP_EXTRACT(string TEXT, exp TEXT)
RETURNS TEXT
DETERMINISTIC
BEGIN
  DECLARE s INT DEFAULT 1;
  ...
  -- Implementation to extract the matching digits
  ...
END
登入後複製

要使用此函數,請按如下方式呼叫它:

SELECT `id`, REGEXP_EXTRACT(`originaltext`, '[0-9][0-9]') AS `digits` FROM `source`
登入後複製

附加條件(數字> 20)

新增數字應大於的條件20、只需將此條件加到任一查詢的WHERE 子句中:

WHERE `digits` > 20
登入後複製

以上是如何從 MySQL 文字欄位中提取連續數字並應用附加條件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板