访问mysql记录集中的特定行

时间:2013-12-16 02:27:21

标签: php mysql

我有一个数据库表,其中的选项看起来像这样

Database records

我执行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

提出并回答了

1 个答案:

答案 0 :(得分:2)

要使用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