MySQL LEFT Function

摘要:在本教程中,您将学习如何使用 MySQL LEFT 函数返回指定长度的字符串的左侧部分。

MySQL LEFT函数简介

LEFT函数是一个字符串函数,它返回指定长度的字符串的左侧部分。

下面显示了LEFT函数的语法。

LEFT(str,length);Code language: SQL (Structured Query Language) (sql)

LEFT函数接受两个参数:

  1. str是要提取子字符串的字符串。
  2. length是一个正整数,指定将返回的字符数。

LEFT函数返回str字符串中最左边的length字符。如果strlength参数为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)

试试看

MySQL 左示例

以下语句返回整个字符串,因为长度超出了字符串的长度。

SELECT LEFT('MySQL LEFT', 9999);Code language: SQL (Structured Query Language) (sql)

试试看

MySQL LEFT 函数示例

以下语句返回空字符串,因为长度为零或负数。

SELECT LEFT('MySQL LEFT', 0);
SELECT LEFT('MySQL LEFT', -2);Code language: SQL (Structured Query Language) (sql)
MySQL LEFT 函数返回空字符串

以下语句返回NULL值,因为长度为NULL

SELECT LEFT('MySQL LEFT', NULL);Code language: SQL (Structured Query Language) (sql)

试试看

MySQL LEFT function returns NULL

使用 MySQL LEFT 函数和列示例

让我们看一下示例数据库中的products表。

产品表

假设您要在目录上显示产品名称和产品描述。产品描述较长,因此只需要显示前 50 个字符。

以下语句使用LEFT函数返回产品描述的前 50 个字符。

SELECT 
    productname, LEFT(productDescription, 50) summary
FROM
    products;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL 左总结

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)

试试看

MySQL LEFT function complex example

在本教程中,您学习了如何使用LEFT函数返回指定长度的字符串的左侧部分。

本教程有帮助吗?