#sql #mysql
#sql #mysql
Вопрос:
Я должен переместить данные таблицы words в другие таблицы.
Например, таблица words является :
------------------------------
| word | type |
|------------------|---------|
| car | NA |
| home | NA |
| question | PR |
------------------------------
Я должен переместить эти данные по длине . Например, длина car равна 3 , и car переместится в таблицу с 3 символами (со столбцом type). И вопрос будет перенесен в 8-символьный формат .
Как я могу это сделать с помощью команд SQL .
Ответ №1:
Своего рода неполный вопрос, но что-то вроде этого может помочь указать вам правильное направление:
INSERT INTO words_3char SELECT word FROM all_words WHERE LENGTH(word)=3;
DELETE FROM all_words WHERE LENGTH(word)=3;
Комментарии:
1. ДА. Для одноразового управления SQL, подобного этому, я бы просто скопировал / вставил / отредактировал эти строки вручную ~ 15 раз или какова бы ни была ваша максимальная длина слова.
2. Слушай, что ты пытаешься сделать, должен быть лучший способ сделать это?
3. @Toby, Просто пример для улучшения моих знаний SQL. Я не использую этот метод напрямую 🙂 Но спасибо вам за проявленный интерес 🙂
4. не совсем . На самом деле, я подумываю создать веб-игру. Эта игра представляет собой словесную головоломку. Например, мне нужно получить слова из 3 символов и слова из 4 символов отдельно.
5. @Eray Если вы включите в свой вопрос определения таблиц, мы могли бы предоставить вам рабочий код. Поскольку вы этого не сделали, вам нужно экстраполировать приведенные здесь ответы. И P.S. вероятно, вам не следует этого делать в первую очередь. Просто ВЫБЕРИТЕ … ГДЕ ДЛИНА (word)=3 во время выполнения.
Ответ №2:
Я не собираюсь спрашивать, зачем вам нужно все это перемещать, но я не уверен, что это хорошая идея. Предполагая, что это так, взгляните на функцию Length() для mysql, а затем попробуйте что-то вроде этого.
Insert into table_Char3(Word) Values (
Select Word from Words where Length(word) = 3)
Ответ №3:
Вы можете переместить их в новые таблицы следующим образом
create table word1char as select word from words where length(trim(word)) = 1
..
create table word3chars as select word from words where length(trim(word)) = 3