用sql查询表中所有字段名前缀相同后缀不同
时间: 2024-05-13 08:20:47 浏览: 12
假设表名为 `mytable`,前缀为 `prefix_`,则可以使用以下 SQL 查询语句:
```
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'mytable'
AND COLUMN_NAME LIKE 'prefix\_%'
AND COLUMN_NAME NOT LIKE '%\_suffix';
```
解释一下:
- `INFORMATION_SCHEMA.COLUMNS` 是 MySQL 中用来存储所有表的列信息的系统表;
- `TABLE_NAME = 'mytable'` 用来指定要查询的表名;
- `COLUMN_NAME LIKE 'prefix\_%'` 用来匹配所有以 `prefix_` 开头的列名;
- `COLUMN_NAME NOT LIKE '%\_suffix'` 用来排除所有以 `_suffix` 结尾的列名。注意要使用 `\` 转义 `_`,否则它会被当做通配符。
相关问题
sql查询 表中字段为空的字段名下拉
您可以使用以下SQL语句查询表中字段为空的字段名:
```
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '表名'
AND TABLE_SCHEMA = '数据库名'
AND IS_NULLABLE = 'YES'
```
其中,将`表名`和`数据库名`替换为您要查询的表名和数据库名。
这条SQL语句将返回表中所有字段名为空的字段名。如果您只需要查询特定的几个字段,请在`SELECT`语句中指定这些字段名,例如:
```
SELECT col1, col2, col3
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '表名'
AND TABLE_SCHEMA = '数据库名'
AND IS_NULLABLE = 'YES'
```
这条SQL语句将返回表中`col1`、`col2`和`col3`字段为空的字段名。
sqlserver批量更改所有表中相同字段的注释
你可以使用以下的SQL语句来批量更改SQL Server中所有表中相同字段的注释:
```
EXEC sp_MSforeachtable @command1='
IF EXISTS (
SELECT *
FROM sys.columns
WHERE object_id = object_id("?")
AND name = "YourColumnName"
)
BEGIN
EXEC sys.sp_addextendedproperty
@name = N"MS_Description",
@value = N"YourNewDescription",
@level0type = N"SCHEMA",
@level0name = N"dbo",
@level1type = N"TABLE",
@level1name = N"?" ,
@level2type = N"COLUMN",
@level2name = N"YourColumnName";
END
'
```
将上述代码中的 "YourColumnName" 替换为你希望更改注释的字段名,将 "YourNewDescription" 替换为你希望设置的新注释即可。