С помощта на Mysql мога да стартирам следната заявка
SELECT `meta_value`
FROM wordpress.wp_postmeta
WHERE post_id
IN (SELECT post_id FROM wordpress.wp_postmeta WHERE meta_value = "Tuesday" AND meta_key = "_field_93")
INTO OUTFILE "/tmp/Tuesday.csv"
FIELDS TERMINATED BY "," ESCAPED BY ","
Понастоящем получавам следното, където данните във всеки ред понастоящем са каскадирани и групирани post_id
например:
post_id = 1112345 (пример не е в CSV файла)
,21
,Tuesday
,John Smith
,abc 123
post_id = 1112346 (пример не е в CSV файла)
,qrz22
,Tuesday
,Bob Godfrey
,ABC 229986
Това, от което се нуждая, е да има всеки post_id
да бъде линия, където всички редове след това се разделят на CSV през тази линия. например:
post_id = 1112345 (пример не е в CSV файла)
,21 ,Tuesday ,John Smith ,abc 123
post_id = 1112346 (пример не е в CSV файла)
,qrz22 ,Tuesday ,Bob Godfrey ,ABC 229986
Сигурен съм, че отговорът ме гледа в лицето, но не съм SQL гуру и нямам представа къде ще се объркам. Аз погледнах в group_concat
команда, но всеки път, когато се опитвам да го включа в моята заявка, просто получавам грешка.
Наистина бих оценил всяка помощ, която някой може да ми даде за това, и съжалявам, ако искането ми няма никакъв смисъл, отново не съм SQL гуру.
Отговори:
0 за отговор № 1Какво ще кажете за изброяването на стойностите на полетата, иначе известни като опорни точки.
SELECT max(if(meta_key,"...",meta_value,null) as field_one,
max(if(meta_key,"_field_93",meta_value,null) as field_two,
max(if(meta_key,"...",meta_value,null) as field_three,
max(if(meta_key,"...",meta_value,null) as field_four
FROM wordpress.wp_postmeta
WHERE post_id
IN (SELECT post_id
FROM wordpress.wp_postmeta
WHERE meta_value = "Tuesday"
AND meta_key = "_field_93")
GROUP BY post_id
INTO OUTFILE "/tmp/Tuesday.csv"
FIELDS TERMINATED BY "," ESCAPED BY ",";