表:
ID English_name Gujarati_name English_short_name Gujarati_short_name
1 2048 TWINKLE POUCH ૨૦૪૮ ટ્વિન્કલ પાઉચ 2048 TWINKLE POUCH ૨૦૪૮ ટ્વિન્કલ પાઉચ
2 2051 TWINKLE POUCH ૨૦૫૧ ટ્વિન્કલ પાઉચ 2051 TWINKLE POUCH ૨૦૫૧ ટ્વિન્કલ પાઉચ
3 1626 POUCH ૧૬૨૬ પાઉચ 1626 POUCH ૧૬૨૬ પાઉચ
4 1618 POUCH ૧૬૧૮ પાઉચ 1618 POUCH ૧૬૧૮ પાઉચ
查询:
SELECT `item`.`id`,
`item`.`english_name`,
`item`.`gujarati_name`,
`item`.`english_short_name`,
`item`.`gujarati_short_name`
FROM `item`
WHERE `english_name` LIKE '%twink%' escape '!'
OR `gujarati_name` LIKE '%twink%' escape '!'
OR `english_short_name` LIKE '%twink%' escape '!'
OR `gujarati_short_name` LIKE '%twink%' escape '!'
预期结果:
ID English_name Gujarati_name English_short_name Gujarati_short_name Matching
1 2048 TWINKLE POUCH ૨૦૪૮ ટ્વિન્કલ પાઉચ 2048 TWINKLE POUCH ૨૦૪૮ ટ્વિન્કલ પાઉચ English_name, English_short_name
2 2051 TWINKLE POUCH ૨૦૫૧ ટ્વિન્કલ પાઉચ 2051 TWINKLE POUCH ૨૦૫૧ ટ્વિન્કલ પાઉચ English_name, English_short_name
3 1626 POUCH ૧૬૨૬ પાઉચ 1626 POUCH ૧૬૨૬ પાઉચ
4 1618 POUCH ૧૬૧૮ પાઉચ 1618 POUCH ૧૬૧૮ પાઉચ
任何人都可以告诉我如何知道匹配的列以便我只能打印该列的数据,而不能打印任何其他列的数据。请帮助我编辑此问题,以便对其他人有所帮助。抱歉,如果我犯了任何语法错误。
最佳答案
查找符合您条件的列名可能看起来很难看
SELECT `item`.`id`,
`item`.`english_name`,
`item`.`gujarati_name`,
`item`.`english_short_name`,
`item`.`gujarati_short_name` ,
CONCAT_WS(
',',
CASE WHEN `english_name` LIKE '%twink%' ESCAPE '!' THEN 'english_name' ELSE NULL END,
CASE WHEN `gujarati_name` LIKE '%twink%' ESCAPE '!' THEN 'gujarati_name' ELSE NULL END,
CASE WHEN `english_short_name` LIKE '%twink%' ESCAPE '!' THEN 'english_short_name' ELSE NULL END,
CASE WHEN `gujarati_short_name` LIKE '%twink%' ESCAPE '!' THEN 'gujarati_short_name' ELSE NULL END
) matching
FROM `item`
WHERE `english_name` LIKE '%twink%' ESCAPE '!'
OR `gujarati_name` LIKE '%twink%' ESCAPE '!'
OR `english_short_name` LIKE '%twink%' ESCAPE '!'
OR `gujarati_short_name` LIKE '%twink%' ESCAPE '!'
关于Mysql知道匹配的是哪一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47886217/