2012-12-25 6 views
0

У меня есть это содержание моего столбца базы данных MySQL:Показать другое значение из поля базы данных

+-------+ 
|Status | 
+-------+ 
|  | // empty 
|  | // empty 
|Reject | 
|reject | 
+-------+ 

У меня есть некоторые условия для этого Status, так что пользователь может увидеть решение этого дела:

  1. Если результат Reject (автоматически, если выбрать пункт) или reject (некоторые пользователи вводят это после редактирования данных) эхо Отклонить
  2. Если результат empty или «Принимать» или «accept` эхо Accept

меня попробовать это:

if($row['Status'] == "Reject"){ 
       echo "Reject"; 
       } 
     elseif($row['Status'] == "reject"){ 
       echo "Reject"; 
       } 
     else{ 
       echo "Accept"; 
       } 

Но, это всегда вторя Accept. Причина результат ниже запрос empty:

SELECT COUNT(Serial_number) AS n, SUM(S) AS S,SUM(A) AS A, SUM(B) AS B, SUM(C) AS C, 
     ROUND((((SUM(S)*1)+(SUM(A)*1)+(SUM(B)*0.4)+(SUM(C)*0.1))/COUNT(Serial_number)*1000000),0) AS PPM, 
     Status 
     FROM inspection_report WHERE Model LIKE 'MDV-Z700D' AND Lot_no LIKE '010A' 
     AND Line LIKE 'FA 21' AND Range_sampling ='177X0001-177X0100' GROUP BY Range_sampling 

Результат:

n S A B C PPM Status 
20 0 1 0 0 50000    //this empty status make echo = Accept 

При использовании GROUP_CONCAT(Status) результата будет ,,Reject,reject .so, как эхо каждого условия см 2 выше случае?

Примечание: Я хочу, чтобы внутри этого столбца было отклонено значение, результат отклонения эха, даже если у меня много принимаемого значения.

ответ

2

если Status является NULL, вы можете использовать COALESCE

GROUP_CONCAT(COALESCE(Status,'Accept')) 

но если это пустая строка '', использовать inline IF statement

GROUP_CONCAT(if(Status = '' or Status = 'accept', 'Accept', Status)) 

UPDATE

IF(LOCATE('Reject',GROUP_CONCAT(DISTINCT if(Status = '' or Status = 'accept', 'Accept', Status))) > 0, 'REJECT', 'ACCEPT') 
+0

Пожалуйста, обратите внимание на мою дополнительную информацию. На самом деле мне нужен только один результат. Я использую 'GROUP_concat', чтобы показать вам, что у меня есть значение отклонения внутри моего столбца. Поэтому, если найдено« Отклонить »внутри этого столбца, результат должен быть отклонен. – nunu

+0

Вы упомянули, что если один из них является «Отклонить», тогда весь результат будет «Отклонить», правильно? см. мой обновленный ответ. Также [SQL Fiddle Demo Link] (http://sqlfiddle.com/#!2/c7bcc/1) –

+0

ОК, это работает, но у меня есть два типа отклонения: Отклонить и отклонить. Как упоминать его внутри этого запроса? – nunu

Смежные вопросы