php - Mysql 减少查询次数

标签 php mysql

我在 table1 中有 3 列:book、key 和 value。

| book |   key    |  value   |    
------------------------------             
|  1   |  author  |    a     |              
|  1   |  editor  |    b     |        
|  1   |  book    |    c     |      

而不是运行三个查询

$data = mysql_query("
      SELECT * FROM table1 WHERE book = '1' AND key = 'author'
             ")  or die(mysql_error());  

while($info = mysql_fetch_array( $data ))
  {
       $value1 = $info['value'];
  }

然后对编辑器和书籍重复此操作。

$value1 $value2 $value3 插入到页面的不同位置

我可以通过一个查询来完成此操作吗?

最佳答案

是的。如果没有其他条目包含“book = 1”,您只需查询

SELECT * FROM table1 WHERE book = '1'

如果有更多条目,您可以使用此查询:

SELECT * FROM table1 WHERE book = '1' AND key IN('author','editor','book')

然后创建一个assoc数组:

while($info = mysqli_fetch_assoc( $data ))
  {
       $value[$info['key']] = $info['value'];
  }

...

echo "the book {$value['book']} was written by {$value['author']}";

关于php - Mysql 减少查询次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4834262/

相关文章:

php - fsockopen,连接 ssl ://imap server 时证书验证失败

php 变量不是数组。在变量中使用 mysql_query 插入数据

php - 我的代码只更新数据库的最后一行而不是第二行或我想要的那一行,而且总是最后一行

php - 泳道图的自动布局

php - laravel 5 - 我如何添加 ->index() 到现有的外键

php - 将行的 id 存储在 mysql 的选项选择列表中

php - 将表格 7 数据联系到第 3 方 REST API 服务 - wordpress

php - 压力测试时平均响应时间增加

mysql - Where In select(来自单个字段)

mysql - MySQL中给定子字符串的最后一个索引