Обработать новый символ строки «\ n» в базе данных Sqlite с помощью Python?

У меня есть база данных Sqlite с именем test.db, которая содержит две таблицы с такими структурами:

Таблица 1: ID INTEGER PRIMARY KEY AUTOINCREMENT, Имя varchar (500), Цвет varchar (500)

Таблица 2: ID INTEGER PRIMARY KEY AUTOINCREMENT, Название varchar (500), Запах varchar (500)

Я пытаюсь присоединиться к двум таблицам, используя следующий код

con = sqlite3.connect('test.db') with con: cur = con.cursor() cur.execute("SELECT Color, Smell FROM Table1, Table2 WHERE Table1.Name = Table2.Name") 

Однако я потерпел неудачу, потому что Table1.Name имеет невидимый новый символ строки «\ n», а Table2.Name не работает, поэтому предложение WHERE не работает.

Есть ли способ немного изменить инструкцию SELECT, чтобы Table1.Name = Table2.Name работало? Или мне нужно восстановить таблицу 1, чтобы удалить «\ n», но я не знаю, как это сделать?

2 Solutions collect form web for “Обработать новый символ строки «\ n» в базе данных Sqlite с помощью Python?”

Используйте функцию replace() SQL:

 cur.execute("SELECT Color, Smell FROM Table1, Table2 " "WHERE replace(Table1.Name, '\n', '') = Table2.Name") 

Вы можете обновить весь столбец « Name Table чтобы удалить символы новой строки:

 cur.execute("UPDATE Table1 SET Name = replace(Name, '\n', '') " "WHERE Name like '%\n%'") 

Первое, что вам нужно сделать, это исправить ваши таблицы, чтобы данные были правильными для вашего приложения. Похоже, у вас есть данные, такие как Apple\n в столбце name вашей таблицы.

Запустите этот запрос, чтобы исправить вашу таблицу:

 UPDATE Table1 SET Name = rtrim(Name,'\n') 

Это приведет к удалению всех \n с правой стороны значения столбца Name в каждой строке, а затем обновит эту строку.

Редактировать: ответ @ Martijn позволит вашему запросу работать (при условии, что у вас нет той же проблемы с Table2.Name ), но вы действительно должны исправить данные в своих таблицах, чтобы вам не приходилось запоминать эти обходные пути каждый раз.

  • сведения о столбцах в sqlite3
  • Отсутствует таблица при запуске Django Unittest с Sqlite3
  • Нужно ли мне несколько объектов курсора циклически перебирать набор записей и обновлять их одновременно?
  • Как найти свойства таблицы из объекта сопоставления SQLAlchemy
  • Блокировка строки с помощью SQLite (блокировка чтения?)
  • Вопрос Sqlite insert не работает с python?
  • Python ORM, который автоматически генерирует / обновляет таблицы и использует SQLite?
  • В чем разница между sqlite3 и sqlalchemy?
  • Массивы NumPy с SQLite
  • Есть ли способ получить список имен столбцов в sqlite?
  • Python, Sqlite3 - Как преобразовать список в ячейку BLOB
  •  
    Interesting Posts for Van-Lav

    Как установить пакет Python из IPython?

    Маркировка оси с помощью matplotlib слишком разрежена

    Как сделать вывод jinja2 в файл в Python вместо браузера

    Каков наиболее эффективный способ вставки словарей / списков Python в базу данных SQL?

    Дизайнер Django генерирует ошибку SiteProfileNotAvailable

    Как я могу отправлять переменные в шаблон Jinja из декоратора Flask?

    Есть ли готовый jQuery-заменитель, который я могу использовать для urllib.quote и urllib.unquote в Python 2.6.5?

    Разделить строку на основе регулярного выражения

    Размер GUI Tkinter на экранах с высоким разрешением

    Python 3: EOF при чтении строки (Sublime Text 2 сердится)

    python numpy ValueError: операнды не могут транслироваться вместе с фигурами

    Установленное приложение Python и идентификатор клиента Google

    REST API, работающая с моей программой python вместо базы данных

    Numpy-> Cython conversion: Ошибка компиляции: невозможно преобразовать 'npy_intp *' в объект Python

    Как включить cookiemiddleware в scrapy в python

    Python - лучший язык программирования в мире.