MySQL LEFT函数

时间:2019-11-20 08:52:24  来源:igfitidea点击:

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

MySQL LEFT函数简介

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

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

LEFT(str,length);

LEFT函数接受两个参数:

  • str是您要提取子字符串的字符串。

  • 长度是一个正整数,指定将返回的字符数。

LEFT函数返回str字符串中最左边的字符。
如果str或length参数为NULL,则返回NULL值。

如果长度为零或负数,则LEFT函数将返回一个空字符串。
如果该长度大于str字符串的长度,则LEFT函数将返回整个str字符串。

请注意,SUBSTRING(或SUBSTR)函数还提供与LEFT函数相同的功能。

MySQL LEFT函数示例

将MySQL LEFT函数与文字字符串示例结合使用

以下语句使用LEFT函数返回字符串MySQL LEFT的最左边5个字符。

SELECT LEFT('MySQL LEFT', 5);

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

SELECT LEFT('MySQL LEFT', 9999);

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

SELECT LEFT('MySQL LEFT', 0);
SELECT LEFT('MySQL LEFT', -2);

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

SELECT LEFT('MySQL LEFT', NULL);

在列示例中使用MySQL LEFT函数

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

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

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

SELECT 
    productname, LEFT(productDescription, 50) summary
FROM
    products;

LEFT函数返回前50个字符。
它不在乎单词。

您希望获得前50个字符而不在中间切单词。
为此,请使用以下步骤:

1)使用productDescription列的最左边50个字符。

SELECT 
    LEFT(productdescription, 50)
FROM
    products;

2)使用REVERSE函数反转子字符串。

SELECT 
    REVERSE(LEFT(productdescription, 50))
FROM
    products;

3)使用LOCATE函数获得反向子字符串中第一个空格的位置。

SELECT 
    LOCATE(' ',REVERSE(LEFT(productdescription, 50))) first_space_pos
FROM
    products;

4)从该位置减去-1。
如果找不到任何空间,请将位置保持为零。

SELECT
    IFNULL(NULLIF(LOCATE(' ', REVERSE(LEFT(productDescription, 50))), 0) - 1, 0)
FROM
    products;

5)从50减去头寸,您得到了头寸。
我们称其为last_space_pos。

SELECT
	productDescription,
	(50 - IFNULL(NULLIF(LOCATE(' ', REVERSE(LEFT(productDescription, 50))), 0) - 1, 0)) last_space_pos
FROM
    products;

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;

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