mysql中如何将"BM001014", "BM001006", "BM001002", "BM001003", "BM001004", "BM001005", "BM001007", "BM001008"放进()中并作为in的条件
时间: 2023-12-12 16:02:53 浏览: 13
可以使用以下语句将"BM001014", "BM001006", "BM001002", "BM001003", "BM001004", "BM001005", "BM001007", "BM001008"放进()中并作为in的条件:
```mysql
SELECT * FROM table_name WHERE column_name IN ('BM001014', 'BM001006', 'BM001002', 'BM001003', 'BM001004', 'BM001005', 'BM001007', 'BM001008');
```
其中,table_name是表名,column_name是列名,IN后面的括号中是要查询的值。可以根据实际情况修改表名、列名和查询的值。
相关问题
在work1表中,查询每个部门的入职时间最早的姓名、工号和部门,使用mysql查询,姓名=name,工号=id,部门=bm
好的,针对您的问题,您可以使用以下的 SQL 语句来查询在 work1 表中每个部门入职时间最早的姓名、工号和部门:
```
SELECT t1.name AS 姓名, t1.id AS 工号, t1.bm AS 部门
FROM work1 t1
INNER JOIN (
SELECT bm, MIN(hire_date) AS min_hire_date
FROM work1
GROUP BY bm
) t2 ON t1.bm = t2.bm AND t1.hire_date = t2.min_hire_date;
```
这个查询语句与前两个查询语句基本相同,只是将列名改成了中文,并且将字段名改成了 name、id、bm 对应的中文名。
希望以上的回答能够帮助到您!
优化mysql语句SELECT PERIOD_NET_BEQ, (SELECT PARENT_ITEM_ID FROM bm_dw.bm_item WHERE ITEM_NO = CONCAT(FIRST_SECOND_SUBJECT , THIRD_FOURTH_SUBJECT) LIMIT 1) PARENT_ITEM_ID, (SELECT ITEM_NAME FROM bm_dw.bm_item WHERE ITEM_NO = CONCAT(FIRST_SECOND_SUBJECT , THIRD_FOURTH_SUBJECT) LIMIT 1) ITEM_NAME FROM BM_BUDGET_REC_EXEC_ORA_IMP WHERE CURRENCY = 'RMB'
这个 SQL 查询语句可以优化的地方有:
1. 可以将两个子查询合并成一个,这样可以避免两次扫描 `bm_dw.bm_item` 表,提高查询效率,例如:
```
SELECT
PERIOD_NET_BEQ,
item.PARENT_ITEM_ID,
item.ITEM_NAME
FROM BM_BUDGET_REC_EXEC_ORA_IMP imp
JOIN bm_dw.bm_item item ON item.ITEM_NO = CONCAT(imp.FIRST_SECOND_SUBJECT, imp.THIRD_FOURTH_SUBJECT)
WHERE imp.CURRENCY = 'RMB';
```
2. 可以在 `bm_dw.bm_item` 表上建立联合索引 `(ITEM_NO, PARENT_ITEM_ID, ITEM_NAME)`,这样可以避免全表扫描,提高查询效率。需要注意的是,联合索引的顺序需要根据实际查询中的条件进行选择,以最大化索引的效用。
综上,可以将原来的 SQL 查询语句优化为:
```
SELECT
PERIOD_NET_BEQ,
item.PARENT_ITEM_ID,
item.ITEM_NAME
FROM BM_BUDGET_REC_EXEC_ORA_IMP imp
JOIN bm_dw.bm_item item ON item.ITEM_NO = CONCAT(imp.FIRST_SECOND_SUBJECT, imp.THIRD_FOURTH_SUBJECT)
WHERE imp.CURRENCY = 'RMB';
```
同时,在 `bm_dw.bm_item` 表上建立联合索引 `(ITEM_NO, PARENT_ITEM_ID, ITEM_NAME)`。