Найти список слов (через запятую), которые присутствуют в текстовом столбце в базе данных MySQL

Я использую php / mysql.
Я храню разделенные запятыми 6-значные числа в текстовом столбце таблицы в базе данных.

Я хочу получить метод, чтобы найти, какие числа в данном диапазоне присутствуют в моей базе данных.

Мой стол выглядит так:

 |id|date|commaSeperatedList|

Теперь в качестве ввода в sql я хочу указать диапазон чисел (например, 234101-234200).

Поэтому я ожидаю, что результат будет в виде:

  |id|date|number|

Итак, решение, над которым я работал, это: использование функции диапазона PHP.

Используя это, я создал строковое предложение Long Where.

     foreach( $words as $word) {
$word=str_pad($word, 6, '0', STR_PAD_LEFT);
$whereClause .= ' commaSeperatedList LIKE "%' . $word . '%" OR';
}

Проблема в том, что: я не знаю точно, какие числа были сочтены общими.

например, допустим, список имеет:
109001,234122,234123,345650

Я даю диапазон (234101-234200)

Вышеприведенный оператор находит все строки, которые содержат любое число в указанном диапазоне. Однако я также хочу знать, какие именно цифры были сопоставлены. В моем приведенном примере эти цифры: 234122,234123

Итак, ожидаемый результат должен быть:

   |1|date|234122|
|1|date|234123|

Любая помощь в этом отношении будет оценена.

-1

Решение

В конце концов пришлось хранить данные путем нормализации.
Есть запросы (полнотекстовое соответствие), которые выполняли работу, но не только они были сложными, но и медленными.

Что касается меня, всегда лучше правильно хранить данные в нормализованном формате. (Это не торговля в пространстве / времени).

Для других в аналогичной ситуации. Сделайте дополнительную работу с данными и сохраните их правильно.
Спасибо всем за ценные ответы!

0

Другие решения

Попробуйте этот код может помочь вам найти между диапазонами

<?php
$list = "109001,234122,234123,345650";
$from = "234101";
$to = "234200";
$list = explode(",",$list);
foreach($list as $val)
{
if($val > $from && $val < $to)
{
echo $val."<br>";
}
}
?>
-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector