CREATE TABLE customer (
id_customer INT(10),
email VARCHAR(250),
firstname VARCHAR(100),
lastname VARCHAR(100),
birthday DATE,
newsletter TINYINT(1)
);
INSERT INTO customer (id_customer, email, firstname, lastname, birthday, newsletter)
VALUES (1, '[email protected]', 'Abe', 'Aaronson', '1965-12-31', 1),
(2, '[email protected]', 'Bill', 'Bond', '1925-05-01', 0);
원래 쿼리를 사용하는 것을 시도하십시오 :
SELECT id_customer, email, firstname, lastname, birthday,
CASE WHEN newsletter=1 THEN 'Abonné' ELSE 'Non Abonné' END
FROM customer
ORDER BY lastname ASC;
. .. 지문 :
+-------------+------------------+-----------+----------+------------+------------------------------------------------------------+
| id_customer | email | firstname | lastname | birthday | CASE WHEN newsletter=1 THEN 'Abonné' ELSE 'Non Abonné' END |
+-------------+------------------+-----------+----------+------------+------------------------------------------------------------+
| 1 | [email protected] | Abe | Aaronson | 1965-12-31 | Abonné |
| 2 | [email protected] | Bill | Bond | 1925-05-01 | Non Abonné |
+-------------+------------------+-----------+----------+------------+------------------------------------------------------------+
그래서 어딘가에 문법 오류가 생겼을 것입니다 (이것은 MySQL 서버로 보내지는 최종 SQL이 아닌 PHP 문자열의 일부로 보입니다).
또한 별칭을 사용하는 것이 좋습니다. 인덱스 열을 Fechting 꽤 오류가 발생하기 쉬운입니다 : (". ._DB_PREFIX _"`customer`)
... CASE WHEN newsletter=1 THEN 'Abonné' ELSE 'Non Abonné' END AS status
은 일반 SQL이 아니다 있지만 최종 SQL 구문 오류가없는 경우 당신의 접근 방식이 올바른 것입니다. 그것이 제대로 작동하지 않는 방법을 말하지 않는 한, 우리는 도움이되는 대답을 제공 할 수 없습니다. –