Я не гуру баз данных, делаю большинство вещей через PHP, как и манипуляции с данными, даже если это внутренняя задача. Однако PHP не очень полезен в этом случае. У меня есть таблица с около 0,4 миллиона записей в ней, и она имеет 16 столбцов, все остальное работает нормально, но я заполнил эту таблицу из текстового файла, и этот текстовый файл имел большинство значений в каждом столбце в двойных кавычках, таких как "United States of America" "London"
и т. д.Как заменить элемент в каждом столбце таблицы базы данных?
Я хочу удалить эти двойные кавычки, где бы я ни находил их, используя один запрос или SQL-скрипт. Я пробовал PHP и его метод str_replace, но, видимо, записи слишком велики, чтобы продолжать применять эту функцию для каждой записи, а затем запускать 2 запроса для каждого значения. Может ли быть какое-нибудь SQL-решение?
База данных MySQL, двигатель можно переключить с MyISAM на InnoDB. Я видел это решение здесь: SQL: search for a string in every varchar column in a database, но не уверен, что он будет работать для меня. Благодарю.
Есть ли какая-либо конкретная причина, по которой вы проверяете '%' 'в блоке 'case when', а не в разделе' where' запроса 'update'? Поскольку ни один из них не будет использовать индексы, он, вероятно, будет не быстрее, но мне кажется более понятным просто «WHERE mycol LIKE» «%» '' – Wolph
TRIM() удаляет только ведущий и конечный« remstr ». Я считаю, что он хотел удалить их всех. – Anpher
@WoLpH: вы, вероятно, правы, это было бы лучше. –