我有一张这样的表:
id exemple_ABC tr_ABC exemple_BCD tr_BCD ....
我想选择以“exemple_”开头的所有列 我试试:
SELECT exemple_* FROM myTable
or
SELECT exemple_% FROM myTable
但所有这些都不起作用......
答案 0 :(得分:0)
您不能使用标准SQL。列名不会被视为SQL中的数据。
如果您使用的SQL引擎具有存储列名,类型等的元数据表,您可以选择该表。
尝试这个
select * from information_schema.columns
where table_name='table1' and column_name like 'exemple_%'
答案 1 :(得分:0)
由于information_schema
表格,您必须创建动态查询。
SELECT
CONCAT(
'SELECT ',
SUBSTRING_INDEX(
GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
',',
2),
' FROM your_table'
)
FROM
information_schema.columns
WHERE
table_schema=DATABASE()
AND table_name ='your_table'
AND column_name LIKE 'your_prefix_%'
INTO @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
看看这里(我发现这个查询我已经改变了一点点):select first N columns of MySQL table
答案 2 :(得分:-1)
这是一个非常奇怪的情况,不知道确切的数据库设计,但基本上你唯一的选择是通配符所有列并在客户端选择你想要的,即:
SELECT * FROM myTable