【问题标题】:How to get the value of column if I knew the value of other column in the same row in MySQL?如果我知道 MySQL 中同一行中其他列的值,如何获取列的值?
【发布时间】:2018-05-20 09:22:26
【问题描述】:

我必须使用我已经知道的同一行中的其他列数据来检索列数据。

例如。表格

表名:夹具

fix_id | fix_against
1837 |  Aus Vs. Eng
2942 |  Ind Vs. SA

这里我已经知道“fix_id”。所以,我需要使用同一行中的“fix_id”检索“fix_against”值。

假设,如果 fix_id = 1837,我将检索 Aus v.S Eng (fix_against) 值。

这是我尝试过的。

global $wpdb; $known_value = 1837;
  $sql = $wpdb->prepare( "SELECT fix_against FROM fixtures WHERE fix_id = '$known_value'");
$result = $wpdb->get_results( $sql );echo $result;

这显然行不通。任何建议都将受到高度赞赏。

【问题讨论】:

  • This doesn't apparently work ... 什么不起作用?理想情况下,您应该使用准备好的语句,但您的查询对我来说是正确的。
  • 我不是 SQL 专家,但可以试试这个 DB-API 2.0 命令来检索数据:SELECT * FROM fixtures WHERE fix_id=2942; ....顺便说一句,你的 fix_id 是整数类型,那你为什么要使用引号那里 ?试试这个代码:"SELECT * FROM fixtures WHERE fix_id=$known_value" 引号仅代表字符串类型数据。
  • 或者错误是语句后的分号?示例:SELECT * FROM fixtures; WHERE fix_id=$known_value;
  • @s3n0 感谢您的意见。我确实尝试了所有这些建议,但仍然无法正常工作。它返回“数组”。
  • 尝试w3schools.com/php/php_mysql_select.asp 并使用echo (PHP) 检查您的DB API 命令。也许有必要将您的变量用作字符串(在 API 命令字符串中)。你的 $sql 不是字符串,但我认为插入了一个对象,这是错误的。所以同样的事情,Ygor Yavych 在下一个答案中指出。尝试仅使用纯 $sql 字符串和 DB API 2.0 命令来查看它是否有效。不要忘记使用echo 命令 (PHP) 或至少使用调试控制台来找出原因并检查是否正在发送正确的 DB API 命令。

标签: php mysql sql database wordpress


【解决方案1】:

您的查询是正确的。你的问题就在这里:

$result = $wpdb->get_results( $sql );
echo $result;

默认情况下,$wpdb->get_results 返回一个对象数组。在您的情况下,$result[0]->fix_against 之类的东西会起作用。但是,如果您只需要一个单元格的值,则最好使用$wpdb->get_var

$fix_against = $wpdb->get_var($sql);
echo $fix_against;

如果你只需要一行,你可以使用$wpdb->get_row

$result= $wpdb->get_row($sql);
echo $result->fix_against;

你可以了解更多wpdbhere

【讨论】:

    猜你喜欢
    • 2019-09-15
    • 2012-08-27
    • 1970-01-01
    • 2021-11-16
    • 2013-07-28
    • 2016-12-22
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    相关资源
    最近更新 更多