Ich habe einen Tisch:
id property_id keyword
1 1 Bangalore
2 2 Kolkata
Ich möchte die Spaltenwerte durch Kommas getrennt. Also habe ich versucht:
select (SELECT group_concat(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search') as result;
Was dazu geführt hat:
result
id,property_id,keyword
Jetzt möchte ich, dass diese Ergebnisspalte geteilt wird und jeder Wert durch Komma getrennt wird.
Also habe ich versucht:
select left(
(SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search'),
locate(',',
(SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search')
) - 1) as result;
Welches kehrt zurück:
result
id
und
select substr(
( SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search'),locate(',',
( SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search')) + 1
) as result;
welche retunr:
result
property_id,keyword
Nochmal:
select substr((substr(
( SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search'),locate(',',
( SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search')) + 1)
),locate(',',(substr(
( SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search'),locate(',',
( SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search')) + 1))) + 1
) as result;
Es gibt zurück:
result
keyword
Aber nirgends kann ich property_id in der Ergebnisspalte abrufen.
Jede Hilfe wird geschätzt.
Kann ich die innere SELECT- Anweisung als Variable verwenden, indem
ich SET @variableName = 'value' für diese Syntax verwende? Wenn ja WIE?
Vielen Dank im Voraus.
Vielleicht möchten Sie substring_index()
:
select substring_index(rcat, ',', 1) as first_col,
substring_index(substring_index(rcat, ',', 2), ',', -1) as col1,
substring_index(rcat, ',', -1) as last_col
from (SELECT group_concat(COLUMN_NAME) as rcat
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cache_search'
) r
Ich habe die Unterabfrage in die from
Klausel verschoben, damit sie leichter zu lesen ist.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen