Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mysql查询获取基于语言的详细信息?_Mysql - Fatal编程技术网

使用mysql查询获取基于语言的详细信息?

使用mysql查询获取基于语言的详细信息?,mysql,Mysql,我的应用程序支持多种语言,我希望获得基于语言id的报价详细信息。 我可以加入,但我的挑战是,如果所选语言没有值,则获取默认语言文本 即 我的报价标题可以有两种语言的文本。默认语言是必需的,报价标题应该在那里。 但有时用户不会用第二语言输入报价标题, 当用户以第二语言浏览报价列表时,我想从默认语言中获取报价标题,因为所选语言报价标题不存在。 如何在单个列表查询中执行以下操作:( 我的表格结构如下所示 如何使用MySQL实现?在SELECT语句中使用大小写开关,为方便起见,将其封装在存储过程中 C

我的应用程序支持多种语言,我希望获得基于语言id的报价详细信息。 我可以加入,但我的挑战是,如果所选语言没有值,则获取默认语言文本

我的报价标题可以有两种语言的文本。默认语言是必需的,报价标题应该在那里。 但有时用户不会用第二语言输入报价标题, 当用户以第二语言浏览报价列表时,我想从默认语言中获取报价标题,因为所选语言报价标题不存在。 如何在单个列表查询中执行以下操作:(

我的表格结构如下所示


如何使用MySQL实现?

在SELECT语句中使用大小写开关,为方便起见,将其封装在存储过程中

CREATE PROCEDURE get_offer(
  IN p_language_id INT,
  IN p_offer_id INT
)
BEGIN
    SELECT * 
      FROM Offers o
      JOIN Offer_details od
        ON o.id = od.offers_id
      JOIN languages l
        ON l.id = od.languages.id
      WHERE
        CASE WHEN
          p_language_id IS NOT NULL
         THEN
          p_language_id = l.id
         ELSE
          is_default = TRUE
        END
        AND p_offer_id = o.id
END
然后,如果他们的语言id设置为
call get\u offer($lid,$oid)
或者如果不是
call get\u offer(null,$oid)