mysql列名称字符串截取
时间: 2023-07-08 08:55:42 浏览: 85
如果您想截取 MySQL 表中某一列的名称字符串,可以使用以下语句:
```sql
SELECT SUBSTRING_INDEX(COLUMN_NAME, '_', 1) AS col_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name' AND TABLE_SCHEMA = 'your_database_name';
```
其中,`COLUMN_NAME` 是要截取的列名称,`your_table_name` 是要查询的表名,`your_database_name` 是要查询的数据库名。`SUBSTRING_INDEX` 函数可以根据指定的分隔符 `_` 进行截取,这里是截取第一个 `_` 前的字符串。`AS col_name` 是将截取后的结果命名为 `col_name`。
相关问题
Mysql查询截取月份字符串并且第一个字符串为0过滤替换为空,怎么写
假设你要从一个日期字符串中截取月份,并将第一个字符为0的替换为空,可以使用如下的MySQL查询语句:
```
SELECT REPLACE(LTRIM(MONTH('2020-01-01')), '0', '') AS month;
```
其中,MONTH('2020-01-01')函数用于从日期字符串中截取月份,LTRIM函数用于去除月份字符串左边的空格字符,REPLACE函数用于将第一个字符为0的替换为空。
如果你要对一张表中的日期字段进行这样的处理,可以使用如下的查询语句:
```
SELECT REPLACE(LTRIM(MONTH(date_field)), '0', '') AS month FROM table_name;
```
其中,date_field是日期字段的名称,table_name是表名。这个查询语句将返回一个包含每个日期字段月份的新列,其中第一个字符为0的被替换为空。
mysql中分别有a表和b表,需要通过a表的门店名称列取除了最后一个字以外的字符串模糊匹配b表的门店名称列,将匹配到的b表门店名称录入到a表中
在MySQL中,你可以使用 `LIKE` 运算符结合 `SUBSTRING_INDEX()` 函数来实现这个需求。`SUBSTRING_INDEX()` 可以截取字符串的一部分直到遇到指定的分隔符,这里我们可以选择去掉最后一个字符。假设a表的门店名称列为 `store_name_a`,b表的门店名称列为 `store_name_b`,可以编写如下的SQL查询:
```sql
UPDATE a
SET store_name_b = b.store_name_b
FROM a
JOIN (
SELECT store_name_b,
SUBSTRING_INDEX(store_name_b, ' ', -1) AS new_store_name_b
FROM b
) AS sub_b
ON SUBSTRING_INDEX(a.store_name_a, ' ', -1) LIKE CONCAT('%', sub_b.new_store_name_b, '%')
```
这个查询首先从b表中取出每个门店名称去掉最后一个空格后的部分(即除最后一个字外的部分),然后在a表中查找与之模糊匹配的门店名称。如果找到匹配项,就将b表的门店名称设置到a表对应的记录上。
阅读全文