Перемещение данных по длине

#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