摘要:在本教程中,您将学习如何使用 MySQL LEFT 函数返回指定长度的字符串的左侧部分。
MySQL LEFT函数简介
LEFT
函数是一个字符串函数,它返回指定长度的字符串的左侧部分。
下面显示了LEFT
函数的语法。
LEFT(str,length);
Code language: SQL (Structured Query Language) (sql)
LEFT
函数接受两个参数:
str
是要提取子字符串的字符串。-
length
是一个正整数,指定将返回的字符数。
LEFT
函数返回str
字符串中最左边的length
字符。如果str
或length
参数为NULL
,则返回NULL
值。
如果length
为零或负数,则LEFT
函数返回空字符串。如果长度大于str
字符串的长度,则LEFT
函数返回整个str
字符串。
请注意, SUBSTRING (或SUBSTR )函数还提供与LEFT
函数相同的功能。
MySQL LEFT 函数示例
使用 MySQL LEFT 函数和文字字符串示例
以下语句使用LEFT
函数返回字符串MySQL LEFT
最左边的 5 个字符。
SELECT LEFT('MySQL LEFT', 5);
Code language: SQL (Structured Query Language) (sql)
以下语句返回整个字符串,因为长度超出了字符串的长度。
SELECT LEFT('MySQL LEFT', 9999);
Code language: SQL (Structured Query Language) (sql)
以下语句返回空字符串,因为长度为零或负数。
SELECT LEFT('MySQL LEFT', 0);
SELECT LEFT('MySQL LEFT', -2);
Code language: SQL (Structured Query Language) (sql)
以下语句返回NULL
值,因为长度为NULL
SELECT LEFT('MySQL LEFT', NULL);
Code language: SQL (Structured Query Language) (sql)
使用 MySQL LEFT 函数和列示例
让我们看一下示例数据库中的products
表。
假设您要在目录上显示产品名称和产品描述。产品描述较长,因此只需要显示前 50 个字符。
以下语句使用LEFT
函数返回产品描述的前 50 个字符。
SELECT
productname, LEFT(productDescription, 50) summary
FROM
products;
Code language: SQL (Structured Query Language) (sql)
LEFT
函数返回前 50 个字符。它不在乎言语。
您想要获取前 50 个字符,而不需要剪切中间的单词。为此,您可以使用以下步骤:
1) 取productDescription
列最左边的50个字符。
SELECT
LEFT(productdescription, 50)
FROM
products;
Code language: SQL (Structured Query Language) (sql)
2) 使用REVERSE
函数反转子字符串。
SELECT
REVERSE(LEFT(productdescription, 50))
FROM
products;
Code language: SQL (Structured Query Language) (sql)
3) 使用LOCATE
函数获取反转子串中第一个空格的位置。
SELECT
LOCATE(' ',REVERSE(LEFT(productdescription, 50))) first_space_pos
FROM
products;
Code language: SQL (Structured Query Language) (sql)
4) 位置减1。如果找不到任何空间,请将位置保持为零。
SELECT
IFNULL(NULLIF(LOCATE(' ', REVERSE(LEFT(productDescription, 50))), 0) - 1, 0)
FROM
products;
Code language: SQL (Structured Query Language) (sql)
5) 从 50 中减去位置,您就得到了位置。我们将其称为last_space_pos.
SELECT
productDescription,
(50 - IFNULL(NULLIF(LOCATE(' ', REVERSE(LEFT(productDescription, 50))), 0) - 1, 0)) last_space_pos
FROM
products;
Code language: SQL (Structured Query Language) (sql)
6) 取产品描述最左边的last_space_pos
字符。
SELECT
productDescription, LEFT(productDescription, last_space_pos)
FROM
(SELECT
productDescription,
(50 - IFNULL(NULLIF(LOCATE(' ', REVERSE(LEFT(productDescription, 50))), 0) - 1, 0)) last_space_pos
FROM
products) AS t;
Code language: SQL (Structured Query Language) (sql)
在本教程中,您学习了如何使用LEFT
函数返回指定长度的字符串的左侧部分。