Получить результаты из комбинированной базы данных MySQL

0

Я пытаюсь получить конкретный счет на основе двух условий, а именно:

если 'Fieldname'='Centrum' имеет 'FieldValue'='Reinier de Graaf, Delft' сочетании с 'Fieldname'='Participate ", имеет " FieldValue'='Ja'.

Что-то вроде:

$database = JFactory::getDBO();
$database->setQuery("SELECT COUNT('SubmissionId') FROM #__rsform_submission_values WHERE ('FieldName'='Participate' AND 'FieldValue'='Ja') AND ('FieldValue'='Reinier de Graaf Gasthuis, Delft')");
$formLayout = "Reinier de Graaf Gasthuis, Delft: <strong>".$database->loadResult()."</strong>";

Однако в этом случае он не дает мне правильного номера. Наверное, я что-то перемешиваю.

  • 0
    Вы спрашиваете свою базу данных, содержит ли столбец «FieldValue» данные «Ja» и «Reinier de Graaf Gasthuis, Delft» В ОЧЕНЬ ОДНОМ ТОЧНОМ РЯДЕ. Это просто не может быть так.
  • 0
    Привет, Стефан! Нет, я прошу, чтобы у имени поля 'centrum' было значение поля 'Reinier de Graaf', а у другого имени поля 'участвовать' (поэтому в другом ряду, но с тем же идентификатором submissionId) должно быть значение поля 'ja'
Теги:
phpmyadmin

2 ответа

2

Это никогда не дает правильных результатов. Вы делаете так:

FieldValue= 'Ja' AND FieldValue= 'Reinier de Graaf Gasthuis, Delft'

выше - ошибка. вы можете использовать OR в одном случае

1

Ваш запрос должен быть:

SELECT COUNT('SubmissionId') FROM #__rsform_submission_values 
WHERE 'FieldName'='Participate' AND 
      ('FieldValue'='Ja' OR 'FieldValue'='Reinier de Graaf Gasthuis, Delft');

Это связано с тем, что невозможно иметь данные с значением поля, которое одновременно содержит два значения. Или вам лучше использовать функцию INSTR, чтобы проверить, содержит ли поле FieldValue искомые строки:

SELECT COUNT('SubmissionId') FROM #__rsform_submission_values 
WHERE 'FieldName'='Participate' AND 
      (INSTR('FieldValue','Ja')>0 OR INSTR('FieldValue','Reinier de Graaf Gasthuis, Delft')>0);
  • 0
    Большое спасибо! Я не объяснил себе достаточно. «Centrum» должен быть «Reinier de Graaf», а «Участвовать» должен быть «Ja», чтобы быть включенным в счет. Используя приведенную выше строку, он не принимает во внимание FieldName Centrum. Большое спасибо за помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню