mysql:使用 LIKE 选择多列

标签 mysql sql

我有很多列,其形式为: rp_id_1 rp_id_2 等等。 我想获取这些特定列的数据。 在论坛上,我看到建议的查询类型如下:

"SELECT column_name
FROM information_schema.columns
WHERE table_name='loc_tbl'
AND column_name LIKE 'rp%'"

但是,这仅返回列名称,而不返回数据。 输出:

+-------------+
| column_name |
+-------------+
| rp_id_1     |
| rp_id_2     |
| rp_id_3     |

我错过了什么?我如何获取所有这些列的数据?谢谢。

最佳答案

我们可以使用动态 MySQL 来做到这一点。从 MySQL 命令行:

SELECT @cols := GROUP_CONCAT(column_name) FROM information_schema.columns
    WHERE table_name = 'loc_tbl' AND column_name LIKE 'rp%';
SET @query = CONCAT("SELECT ", @cols, " FROM lob_tbl");
PREPARE stmt FROM @query;
EXECUTE stmt;

关于mysql:使用 LIKE 选择多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53002984/

相关文章:

MySQL 存储过程不适用于 SELECT(基本问题)

sql - 选择与时间对应的所有行

php - 使用 PDO 通过单个查询插入多行

php - php mysql中的计算

php - 如何使用php在mysql中特定用户登录后显示数据?

Mysql if语句忽略第一个条件

sql - 包含 UNION 的 MySQL View 优化得不好……换句话说,很慢!

MySQL now() 仅使用日期计算日期时间值

php - 调用成员函数查询oop

sql - 如何替换数据库表每一列中的元素?