PHP/MySQL 根据列名匹配单元格

标签 php mysql

我有一个看起来像这样的数据库。

 x  2  3  4  5
 4  8 12 16 20
 5 10 15 20 25
 6 12 18 24 30
 7 14 21 28 35

当最终用户插入一个值时,我希望将 x 变量与 x 列中的值匹配,并将另一个变量与数字列名称匹配。

那么我将如何编写执行此操作的 SQL 查询?

SELECT * FROM times_tables WHERE x=4 and COLUMN_NAME=4;

谢谢 :)

最佳答案

SELECT
    `4`
FROM
    (SELECT
        4 as `x`, 8 as `2`, 12 as `3`, 16 as `4`, 20 as `5`
    UNION ALL
        SELECT 5, 10, 15, 20, 25
    UNION ALL
        SELECT 6, 12, 18, 24, 30
    UNION ALL
        SELECT 7, 14, 21, 28, 35) `times_tables`
WHERE
    `x` = 4

输出:

4
---
16

所以在你的情况下查询可能是这样的:

SELECT `{$col}` FROM `times_tables` WHERE `x` = {$row};

更新:

可以用纯 SQL 来完成:

SET @r = 4; -- row
SET @c = 5; -- col

SET @qry = CONCAT('SELECT `', @c ,'` FROM `times_tables` WHERE `x` = ', @r);

PREPARE stmt FROM @qry;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

附注:您可以将 SQL 包装到存储过程中以获得更好的保护。

关于PHP/MySQL 根据列名匹配单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16051144/

相关文章:

php - 如何查询特定的名称服务器( native php)

php - Laravel:在表中的同一 ID 下逐一显示多行

php - SQL 计算多列中的某些值

php - 如何在 API 平台中创建自定义端点并将其添加到文档中?

php - 如何在两列中不重复计数?

php - 更新sql中的表不起作用

mysql - 连接表上的 Rails SQL 查询

php - netbeans:如何调试 POST 请求 (PHP)

php - SimpleXML::addChild() 无法在输出到 xml 时添加换行符

php - Cake php 登录显示用户名和密码无效,即使它们是正确的