Как найти строку в таблице sqlite3?

1

Есть ли чистый запрос sqlite для поиска строки в базе данных?

С небольшим количеством оболочки я могу извлечь схемы из таблиц:

for i in *sqlite; 
   do sqlite3 $i ".tables"
   | grep -Eoh "[^ ]+" 
   | while read t; do 
          echo -n "$i:$t  ";
          sqlite3 $i '.schema "'"$t"'"';
   done;
echo;
done

Тогда я мог бы найти, какой столбец имеет тип TEXT, и сделать запрос.

Но есть ли чистый SQL-способ сделать это в терминале?

Теги:

1 ответ

1
Лучший ответ

SQLite разработан как встроенная база данных и, следовательно, имеет только чрезвычайно базовые возможности программирования (у него есть триггеры, но нет логики управления, например, if или loop). Таким образом, невозможно сделать что-либо динамическое в SQL - результат PRAGMA table_info не может быть непосредственно использован в SQL-запросах.

Очень быстрый и грязный способ поиска везде в базе данных - показать все содержимое с помощью .dump а затем просто grep. Однако это не так быстро, потому что поиск индексированных столбцов будет быстрее в SQL.

  • 0
    Спасибо, это решило мою проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню