sql:选择一些我不知道整个名称的列

时间:2014-06-19 12:27:51

标签: mysql

我有一张这样的表:

id exemple_ABC tr_ABC exemple_BCD tr_BCD ....

我想选择以“exemple_”开头的所有列 我试试:

SELECT exemple_* FROM myTable
or
SELECT exemple_% FROM myTable

但所有这些都不起作用......

3 个答案:

答案 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