【问题标题】:Access specific row in mysql recordset访问 mysql 记录集中的特定行
【发布时间】:2013-12-16 02:27:20
【问题描述】:

我有一个带有如下选项的数据库表

我执行SELECT * FROM options 并将所有记录加载到记录集中。

然后我如何只访问 optionName = SMSactive 的 optionValue

[编辑]

是的,我可以做到SELECT * FROM options WHERE optionName ='SMSactive' - 我知道。

但正如我所说,由于我有一个包含一堆行的记录集(来自 SELECT),我想提取一个特定行,其中 optionName = SMSactive

[编辑] 如果你使用 PHP >= 5.5,你可以使用 array_column() http://php.net/array_column

但如果不是,这个问题已经在这里PHP multidimensional array search by value提出并回答了

【问题讨论】:

  • 显示您的选择状态
  • 这个问题目前还不清楚;请考虑付出更多努力,以确保每个人都了解确切的问题。

标签: php mysql


【解决方案1】:

要使用 optionName = SMSactive 访问所有记录,SQL 应该是:

SELECT * FROM `TableName` WHERE `optionName` = 'SMSactive'

如果查询的数组结果是这样的:

$array = array(
    0 => array(
        'optionName' => 'lala0',
        'optionDescription' => 'lala01',
        'optionValue' => 'lala03',
    ),
    1 => array(
        'optionName' => 'lala1',
        'optionDescription' => 'ala2',
        'optionValue' => 'SMSactive',
    )
);

你可以通过这种方式抓住谁有'optionValue' => 'SMSactive',

foreach ($array as $key) {
    if ($key['optionValue'] == 'SMSactive') {
        $filtered[]=$key;
    }
}

echo '<pre>';
print_r($filtered);
echo '</pre>';

旁注:如果数组非常大,您必须小心内存...建议从数据库中获取您当前正在使用的内容...IMO

【讨论】:

  • 改编自电影Dodgeball - 如果你可以写一个SELECT语句,你可以写一个WHERE子句。
  • 也许我没有说清楚。我已经做了 SELECT * FROM 选项。我在数组中有所有行。现在我只想获取其中一个,而无需再次调用数据库。
  • @EmilioGort 这是一个电影参考。你必须熟悉这部电影才能理解我写的内容。
  • 如果你想这样表达,是的,我需要在多维数组中找到那个选项。
  • 感谢 Emilio,这是正确的,但我知道该怎么做。我希望可能有一种方法可以直接搜索数组。我正在使用 PHP stackoverflow.com/questions/6661530/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
  • 1970-01-01
  • 2014-05-12
相关资源
最近更新 更多