我知道如何通过管道将一个MySQL查询转换为另一个:
SELECT user_name FROM users WHERE user_id=( SELECT user_id FROM entries WHERE header="foo" );
出于纯粹的好奇心,我如何动态地选择列或表?
例如:
SELECT (
SELECT column_name FROM column_names WHERE id = 1
) FROM (
SELECT table_name FROM table_names WHERE id = 1
);
处理多个表时,任务是检查该表是否存在,以及它的某些列是否也存在。
查询
SELECT
(TABLE_NAME) AS table_name,
(GROUP_CONCAT(COLUMN_NAME)) AS column_name
FROM information_schema.COLUMNS
WHERE
TABLE_SCHEMA = 'dbms'
AND
TABLE_NAME IN ('user', 'status')
AND
COLUMN_NAME IN ('id', 'name
给定以下MySQL-语句:
SELECT table_name,column_name
FROM information_schema.columns
WHERE table_schema = 'myschema'
AND column_name REGEXP 'ID$'
ORDER BY table_name,ordinal_position
我想从结果中选择包含某个ID #的所有列。
因为我不知道应该应用第二个SELECT的列或表的确切名称,所以我想我需要将SELECT应用于某种“占位符”。
例如,如果第一个请求的结果集是:
('wp_links
可能重复:
查询1:
SELECT *
FROM users
JOIN orders ON (orders.user_id = users.user_id)
WHERE users.user_id = 1;
查询2:
SELECT *
FROM users
JOIN orders USING (user_id)
WHERE user_id = 1;
我想加入订单和用户表来获取一些特定的数据。效果很好。我的问题是,因为两个查询都输出相同的结果集,这是相同的吗?使用哪一种更有效?哪一个对表演有好处?哪一个是最好的练习?
我在我的实验室里做了一些关于sql的测试,所以我尝试用和操作符做两个select语句:
mysql> select * from users where id = 1 and select * from users where id = 2;
告诉我这个错误:
错误1064 (42000):您的SQL语法出现了错误;请检查与MySQL服务器版本相对应的手册,以便在第1行使用接近“select* from用户”的正确语法。
我在web中搜索并通过在第二个选择中添加()来解决这个问题:
mysql> select * from users where id = 1 and (sele
我有一个从表中获取列的mySQL查询,如下所示:
String sqlStr="select column_name
from information_schema.COLUMNS
where table_name='users'
and table_schema='"+_db+"'
and column_name not in ('password','version','id')"
如何在Oracle 11g数据库中更改上述查询?我需要获取列名作为表'users‘