Я использую версию MySQL 8.0.42.SELECT di.original_file_name
FROM document_info di
JOIN (
SELECT
original_file_name,
id,
SUBSTRING_INDEX(original_file_name, '.', -1) AS ext,
LEFT(original_file_name, CHAR_LENGTH(original_file_name) - CHAR_LENGTH(SUBSTRING_INDEX(original_file_name, '.', -1)) - 1) AS base_name
FROM document_info
WHERE doc_id = '683cf75c8a62d9c7e9a366ce'
) base
ON LEFT(di.original_file_name, CHAR_LENGTH(di.original_file_name) - CHAR_LENGTH(SUBSTRING_INDEX(di.original_file_name, '.', -1)) - 1) like CONCAT('%', base.base_name, '\_%')
WHERE di.id base.id;
< /code>
Изображение результата:
Введите описание изображения здесь < /p>
Но если вам нравится concat ('%', base.base_name, '_ 서식%') Как запрос ниже, в результате ничего не выходит. Очевидно, что, несмотря на то, что данные существуют, они не выходят в результате запроса. < /P>
SELECT di.original_file_name
FROM document_info di
JOIN (
SELECT
original_file_name,
id,
SUBSTRING_INDEX(original_file_name, '.', -1) AS ext,
LEFT(original_file_name, CHAR_LENGTH(original_file_name) - CHAR_LENGTH(SUBSTRING_INDEX(original_file_name, '.', -1)) - 1) AS base_name
FROM document_info
WHERE doc_id = '683cf75c8a62d9c7e9a366ce'
) base
ON LEFT(di.original_file_name, CHAR_LENGTH(di.original_file_name) - CHAR_LENGTH(SUBSTRING_INDEX(di.original_file_name, '.', -1)) - 1) LIKE CONCAT('%', base.base_name, '\_서식%')
WHERE di.id base.id;
< /code>
Изображение результата: Введите описание изображения здесь < /p>
Я думаю, что это проблема кодирования для сервера DB, поэтому я проверил и установил UTF8MB4, которая поддерживает корейский.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... sing-error