2
A
回答
3
不是。您可以使用*
column wildcard来选择所有列。
SELECT a.id, a.title, b.*
FROM articles AS a
JOIN blurbs AS b ON a.id = b.article
但是,除非你正在写一个数据库管理程序,你不应该使用*
:如果你要加入多个表,您可以通过表名或别名前缀*
选择特定的表中的所有列。
或者,您可以通过获取表元数据来获取列名称,从而在SQL或其他语言中构建语句。仅使用MySQL,您可以查询INFORMATION_SCHEMA
数据库中的COLUMNS
表以获取列名,并使用GROUP_CONCAT
为该语句构建列列表。
SELECT CONCAT(
'SELECT ',
GROUP_CONCAT(COLUMN_NAME SEPARATOR ', '),
' FROM ', :db, '.', :table,
' WHERE ...'
)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA=:db AND TABLE_NAME=:table
用适当的值替换“:db”,“:table”和“...”。你甚至可以把它变成一个准备好的声明,以便你可以将它用于任何表格。从那里,PREPARE
和EXECUTE
构建的声明。
如果你不局限于SQL进行编程,它应该不那么混乱。您选择的语言的数据库驱动程序可能会提供获取元数据的方法。实际的实现类似于纯粹的SQL方法(获取列名,汇编语句,准备,执行),但不应该如此丑陋,因为你会使用算法而不是声明式语言。
我会在看到,这是实际需要的情况很感兴趣..
0
当然是可能的,如果你使用的是前端的语言。如果php只是使用
$fieldlist= "cola, colb ";
$tablename="tabl";
"select $fieldlist from $table"
我的直觉告诉你正在做一些简单的使用php-mysql,但我可能是错的。
1
您可以使用information_schema然后使用准备好的语句在名称内找到所有包含类型的字段。
set @str = (concat('select ',(select concat(group_concat(column_name),' from ',table_name)
from information_schema.columns
where table_schema = 'your_db_name' and table_name = 'your_table_name' and column_name like '%type%')));
prepare stmt from @str;
execute stmt;
deallocate prepare stmt;
相关问题
- 1. 使用通配符选择MySQL范围
- 2. MySQL的选择使用通配符(但通配符域)
- 3. jQuery的通配符选择
- 4. 通配符嵌套选择
- 5. jQuery的通配符选择
- 6. SQL通配符选择
- 7. Mootools通配符选择器
- 8. SQL通配符选择
- 9. CSS3通配符选择
- 10. SQL选择匹配通配符
- 11. mysql - 选择最匹配的字符
- 12. 如何在MySQL中为通配符选择列?
- 13. 在通配符中选择MySQL中最具体的行
- 14. 用通配符mysql在日期之间进行选择
- 15. MySQL与LIKE,通配符和前导零选择
- 16. PHP mysql选择查询在哪里(通配符)
- 17. 使用XPath通配符选择属性
- 18. PostgreSQL通配符和子选择计数
- 19. CSS:CSS选择器内的通配符
- 20. 从通配符中选择,在Q KDB
- 21. Unix通配符选择器? (星号)
- 22. jQuery选择器中的通配符
- 23. PHP选择哈希使用通配符
- 24. jQuery:removeClass中的通配符类选择器
- 25. c#DataTable使用Int32选择通配符
- 26. Ajax选择通配符搜索结果
- 27. MYSQL PHP通配符
- 28. MySQL的通配符
- 29. MySQL通配符*和%
- 30. mysql匹配通配符
如果你实现了一个类层次结构作为规范化的一组表,你将有几个表连接到基类表。如果知道要检索的实例的类型,则知道要从中读取的表。因此,需要参数表名称。如果我没有弄错,hibernate会对这些情况下涉及的所有表进行联合查询并相应地处理结果。 – Dan 2011-04-07 13:57:11
SHOW COLUMNS FROM table_name where'like'%type%' - 如果在子查询中使用,但它显示额外的列类型,空,键,默认,额外等,这可能会有所帮助......我只希望列名更好逗号分隔.. 。搜索解决方案... – Mark 2011-04-07 14:03:39
1.使用查询 获取所需的列名2.使用点1的结果并在选择查询中使用... – Mark 2011-04-07 14:05:26