Как удалить строку в таблице используя только начало и конец текста?

Ссылка скопирована
1 ответ

Есть таблица dle_post и столбец descr с описанием новостей, во всех описаниях есть строка которая повторяется но внутри нее название продукта разное.
Пример:

Мы печем лучший Вишневый хлеб в стране.

Эта фраза повторяется во всех новостях, меняется только название "Вишневый".
Пример на скриншотах, сейчас вот так:

Как удалить строку в таблице используя только начало и конец текста?

А нужно сделать вот так:

Как удалить строку в таблице используя только начало и конец текста?

Какой sql запрос нужен чтобы удалить строку вместе с названием из всех новостей?

Дополнительно:

where descr like '%Мы печем лучший%хлеб в стране%'

Просто используйте LIKE оператор

delete from news where description like 'Мы печем лучший % хлеб в стране.';

delete from news where description like 'Мы печем лучший % хлеб в стране.';

SQL LIKE online

  • Почти то что нужно, но к сожалению оно удаляет все новости с вхождением такой строки.
    Можете пожалуйста составить такое же правило но только с UPDATE, заменять эту строку на пробел. Возможно так получится.
    Спасибо.
  • Mr. Smith, https://sqlize.online/sql/mysql57/21e3ae3733d6478e... ?
  • Slava Rozhnev, https://sqlize.online/sql/mariadb/e1a02182cdd0b5c9...
    вот что я имею ввиду, но к сожалению не рабочее, текст "Мы печем лучший % хлеб в стране." нужно убрать из новостей. Раз не получается удалить просто этот текст, думал может заменить на пробел.
  • Mr. Smith, https://sqlize.online/sql/mysql80/687b5742db3c4d26...
  • Slava Rozhnev, Спасибо огромное за помощь!
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Ирина WP Ответ

Для удаления строки в таблице, используя только начало и конец текста, вам необходимо выполнить следующие шаги:

1. Определите уникальный идентификатор строки, который будет использоваться для поиска строки в таблице. Это может быть, например, значение в определенном столбце.

2. Найдите индекс строки с помощью начала и конца текста. Для этого вам понадобится использовать соответствующий запрос к базе данных.

3. После того как вы найдете индекс строки, выполните запрос на удаление этой строки с помощью найденного индекса.

Приведу пример кода на языке PHP для удаления строки из таблицы с использованием начала и конца текста:

connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
 
$start_text = "Начало текста";
$end_text = "Конец текста";
 
// Формируем запрос на поиск индекса строки
$sql = "SELECT id FROM table_name WHERE column_name LIKE '%$start_text%$end_text%'";
 
$result = $conn->query($sql);
 
if ($result->num_rows > 0) {
    // Найдена строка, удаляем ее
    $row = $result->fetch_assoc();
    $id = $row["id"];
 
    $sql_delete = "DELETE FROM table_name WHERE id = $id";
 
    if ($conn->query($sql_delete) === TRUE) {
        echo "Строка успешно удалена";
    } else {
        echo "Ошибка при удалении строки: " . $conn->error;
    }
} else {
    echo "Строка не найдена";
}
 
$conn->close();
?>

connect_error) { die("Connection failed: " . $conn->connect_error); } $start_text = "Начало текста"; $end_text = "Конец текста"; // Формируем запрос на поиск индекса строки $sql = "SELECT id FROM table_name WHERE column_name LIKE '%$start_text%$end_text%'"; $result = $conn->query($sql); if ($result->num_rows > 0) { // Найдена строка, удаляем ее $row = $result->fetch_assoc(); $id = $row["id"]; $sql_delete = "DELETE FROM table_name WHERE id = $id"; if ($conn->query($sql_delete) === TRUE) { echo "Строка успешно удалена"; } else { echo "Ошибка при удалении строки: " . $conn->error; } } else { echo "Строка не найдена"; } $conn->close(); ?>

Помните, что перед выполнением любых операций с базой данных необходимо обязательно проводить проверку данных и защищать от SQL-инъекций.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно