-1

我在尝试导出数据时收到此错误消息:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ')、salutation、chrname、name、street_name、street_remainder、zipcode、city、emai' 附近使用正确的语法

我找不到我的折叠...

    $sql = 'SELECT if(turnier = "Company Friends", "Company"), salutation, chrname, name, street_name, street_remainder, zipcode, city, email, tel_num, mob_num, firma, zusatz, postfach, position, telefon, mobil, bemerkungen, catering, rg_firma, rg_abt, rg_strasse, rg_plz, rg_ort, rg_kto_inhaber, rg_kto_nummer, rg_kto_blz, rg_kto_bankname, logofile, logolink, url, agb, kaution, date_format(time, "%d.%m.%y %H:%i:%s"), date_format(rg_print, "%d.%m.%y %H:%i:%s")
            FROM forms_user_reg AS a
            LEFT JOIN 1_additional_data AS b ON a.urn = b.urn
            ORDER BY turnier DESC , time ASC
            LIMIT 1000';

谢谢

4

4 回答 4

3

IF需要 3 个参数。您只提供了 2。将您的 sql 更改为:

 $sql = 'SELECT if(turnier = "Company Friends", "Company", "Something here"), ...

第一个是条件,第二个如果条件满足则返回,第三个如果不满足。

于 2013-10-10T14:02:24.897 回答
1

你的陈述表明:

如果 turnier = "Company Friends",则将其替换为 "Company"。

所以:

SELECT "Company", salutation, chrname, name...

但是,如果 turnier 与“Company Friends”不匹配,则没有什么可替代的——可以这么说,IF 没有 ELSE。

如果 turnier <> "Company Friends" 那么怎么办?

所以,

SELECT ?, salutation, chrname, name...
于 2013-10-11T14:22:45.907 回答
1
SELECT CASE WHEN turnier = "Company Friends" THEN "Company" ELSE turnier END turnier
     , salutation
     , chrname
     , name
     , street_name
     , street_remainder
     , zipcode
     , city
     , email
     , tel_num
     , mob_num
     , firma
     , zusatz
     , postfach
     , position
     , telefon
     , mobil
     , bemerkungen
     , catering
     , rg_firma
     , rg_abt
     , rg_strasse
     , rg_plz
     , rg_ort
     , rg_kto_inhaber
     , rg_kto_nummer
     , rg_kto_blz
     , rg_kto_bankname
     , logofile
     , logolink
     , url
     , agb
     , kaution
     , DATE_FORMAT(time, "%d.%m.%y %H:%i:%s")
     , DATE(rg_print, "%d.%m.%y %H:%i:%s")
  FROM forms_user_reg a
  LEFT 
  JOIN 1_additional_data b 
    ON a.urn = b.urn
 ORDER 
    BY turnier DESC 
     , time ASC
 LIMIT 1000;
于 2013-10-10T14:04:20.607 回答
1

http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if

问题在于“如果”。您缺少 expr3 部分。因此,您需要提供如果 turnier 不等于该值该怎么做。

于 2013-10-10T14:05:44.637 回答