在 MySQL 中,獲取字段的某幾位十分常見和重要,部分常規方法如下:
SELECT LEFT(column_name, n) FROM table_name; SELECT RIGHT(column_name, n) FROM table_name; SELECT SUBSTRING(column_name, start, n) FROM table_name;
其中,n 表示要獲取的位數,start 表示起始位置。
以上方法在一些場景下可能并不能滿足我們的需求,比如字段內容混亂、無法通過位置獲取等。此時我們可以使用正則表達式(REGEXP)來提取字段中的某些內容。
SELECT SUBSTRING(column_name FROM '[0-9]{1,3}') FROM table_name; SELECT SUBSTRING(column_name FROM '[a-zA-Z_]+') FROM table_name; SELECT SUBSTRING(column_name FROM '[0-9]{4}-[0-9]{2}-[0-9]{2}') FROM table_name;
以上正則表達式提取了數字、字母下劃線、日期等不同類型的內容。
除了使用正則表達式外,我們還可以通過字符串函數(如 CONCAT、REPLACE 等)和自定義函數(UDF)來獲取字段的某幾位。
SELECT CONCAT(LEFT(column_name, 3), '***') FROM table_name; CREATE FUNCTION get_some_chars(str VARCHAR(255), start INT, end INT) RETURNS VARCHAR(255) BEGIN RETURN SUBSTRING(str, start, end); END; SELECT get_some_chars(column_name, 3, 6) FROM table_name;
以上方法可根據具體情況進行選擇,靈活運用。
上一篇變圓樣式css
下一篇可自定義css的cms