MySQL:在单个查询中从数据库和PHP数组中获取值

JK

混合菜单

混合菜单

SELECT mixed.unique_id, 
MENU_LABEL 
      case 
          when (--something...)
FROM mixed_menu mixed 
ORDER BY mixed.position ASC

问题:我想编写一个mysql查询,该查询可以在以下情况下检索unique_id,MENU_LABEL。

  • 情况1:

    如果类型=='db_category',则从数据库(1.db_category)中检索标签其中id = unique_id

  • 情况2:

    如果type =='category',则从php数组(2.PHP Array)中检索数组值其中array key = unique_id


1. db_category

db_category

2. PHP数组

$category_array = array('car'  => 'All Cars', 
                        'jeep' => 'All Jeeps'
                       );
肖恩

如果用php数组创建一个新表会更容易。

但是使用您当前的结构,您可以创建一个临时/伪表,如下所示

SELECT * FROM (
  SELECT 'car' as `id`, 'All Cars' as `label`
  UNION
  SELECT 'jeep' as `id`, 'All Jeeps' as `label`
) php

因此,您可以使用类似-

SELECT mm.unique_id,

CASE
  WHEN mm.type = 'db_category' THEN dbc.label
  WHEN mm.type = 'category' THEN php.label
END as menu_label

FROM mixed_menu mm

LEFT JOIN db_category dbc ON mm.unique_id = dbc.id

LEFT JOIN (
  /*Create fake table*/
  SELECT 'car' as `id`, 'All Cars' as `label`
  UNION
  SELECT 'jeep' as `id`, 'All Jeeps' as `label`
) php ON mm.unique_id = php.id

ORDER BY mm.position ASC

这里是一个SQLFiddle例子- http://sqlfiddle.com/#!2/5630cc/5

然后,您需要使用您的php数组构建该假表。

编辑

由于mixed_menudb_category表是COLLATION latin1_swedish_ci,并且SELECT UNION默认使用using ,因此COLLATION utf8_general_ci您需要在声明SELECT UNION

SELECT * FROM (
  SELECT 'car' COLLATE latin1_swedish_ci as `id`, 'All Cars' COLLATE latin1_swedish_ci as `label`
  UNION
  SELECT 'jeep' COLLATE latin1_swedish_ci as `id`, 'All Jeeps' COLLATE latin1_swedish_ci as `label`
) php    

所以现在查询将是

SELECT mm.unique_id,

CASE
  WHEN mm.type = 'db_category' THEN dbc.label
  WHEN mm.type = 'category' THEN php.label
END as menu_label

FROM mixed_menu mm

LEFT JOIN db_category dbc ON mm.unique_id = dbc.id

LEFT JOIN (
  /*Create fake table*/
  SELECT 'car' COLLATE latin1_swedish_ci as `id`, 'All Cars' COLLATE latin1_swedish_ci as `label`
  UNION
  SELECT 'jeep' COLLATE latin1_swedish_ci as `id`, 'All Jeeps' COLLATE latin1_swedish_ci as `label`
) php ON mm.unique_id = php.id

ORDER BY mm.position ASC

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL:在单个查询中从数据库和PHP数组中获取值

来自分类Dev

从mysql数据库中获取值并存储在php数组中

来自分类Dev

如何使用WHERE子句和URL中的变量集从MySQL数据库使用PHP代码从MySQL数据库获取值

来自分类Dev

带有 Unity 和 Firebase 数据库的字典数组 - 从键中获取值

来自分类Dev

需要查询以使用mysql从数据库中的逗号分隔值中获取单个值

来自分类Dev

从mysql数据库获取值以在JSP中显示(JAVA)

来自分类Dev

无法从PHP中的数据库获取值

来自分类Dev

从具有特定前缀的数据库中获取值-MySQL / PHP

来自分类Dev

如何在codeigniter中查询(获取)mysql数据库的多个表作为单个表

来自分类Dev

TCPDF 从数据库中获取值

来自分类Dev

如何使用php从数据库中获取单个值

来自分类Dev

如何使用php从数据库中获取单个值

来自分类Dev

如何使用 php 脚本从 MySQL 数据库中获取数据到嵌套的 JSON 数组中?

来自分类Dev

使用mysql和php显示ID匹配的数据库中的单个结果

来自分类Dev

使用PHP和MySQL从数据库中删除单个行

来自分类Dev

如何基于数组从mysql数据库中获取数据

来自分类Dev

PHP MySQL查询当前数据=数据库中的日期

来自分类Dev

使用PHP和MySQL从数据库中获取数据时,无法避免重复数据

来自分类Dev

使用 MySQL 和 PHP 查询时出错,基于显示数据库中的数据

来自分类Dev

MySQL查询从数据库中获取当前日期?

来自分类Dev

MySQL查询从数据库中获取当前日期?

来自分类Dev

在php数据库查询中获取错误

来自分类Dev

如何使用PHP和mySQli从MySQL数据库中的一个以上的表中选择信息,必须结合使用单个查询

来自分类Dev

查询Parse数据库以从Parse数据类中的单个列获取数据

来自分类Dev

如何使用php从mysql数据库中获取数据

来自分类Dev

使用php从mysql数据库中获取数据

来自分类Dev

通过PHP从mysql数据库中获取数据

来自分类Dev

使用php和jquery ajax从mysql数据库中获取数据

来自分类Dev

PHP 和 MySQL 搜索从数据库中获取完整数据

Related 相关文章

  1. 1

    MySQL:在单个查询中从数据库和PHP数组中获取值

  2. 2

    从mysql数据库中获取值并存储在php数组中

  3. 3

    如何使用WHERE子句和URL中的变量集从MySQL数据库使用PHP代码从MySQL数据库获取值

  4. 4

    带有 Unity 和 Firebase 数据库的字典数组 - 从键中获取值

  5. 5

    需要查询以使用mysql从数据库中的逗号分隔值中获取单个值

  6. 6

    从mysql数据库获取值以在JSP中显示(JAVA)

  7. 7

    无法从PHP中的数据库获取值

  8. 8

    从具有特定前缀的数据库中获取值-MySQL / PHP

  9. 9

    如何在codeigniter中查询(获取)mysql数据库的多个表作为单个表

  10. 10

    TCPDF 从数据库中获取值

  11. 11

    如何使用php从数据库中获取单个值

  12. 12

    如何使用php从数据库中获取单个值

  13. 13

    如何使用 php 脚本从 MySQL 数据库中获取数据到嵌套的 JSON 数组中?

  14. 14

    使用mysql和php显示ID匹配的数据库中的单个结果

  15. 15

    使用PHP和MySQL从数据库中删除单个行

  16. 16

    如何基于数组从mysql数据库中获取数据

  17. 17

    PHP MySQL查询当前数据=数据库中的日期

  18. 18

    使用PHP和MySQL从数据库中获取数据时,无法避免重复数据

  19. 19

    使用 MySQL 和 PHP 查询时出错,基于显示数据库中的数据

  20. 20

    MySQL查询从数据库中获取当前日期?

  21. 21

    MySQL查询从数据库中获取当前日期?

  22. 22

    在php数据库查询中获取错误

  23. 23

    如何使用PHP和mySQli从MySQL数据库中的一个以上的表中选择信息,必须结合使用单个查询

  24. 24

    查询Parse数据库以从Parse数据类中的单个列获取数据

  25. 25

    如何使用php从mysql数据库中获取数据

  26. 26

    使用php从mysql数据库中获取数据

  27. 27

    通过PHP从mysql数据库中获取数据

  28. 28

    使用php和jquery ajax从mysql数据库中获取数据

  29. 29

    PHP 和 MySQL 搜索从数据库中获取完整数据

热门标签

归档