PHP Mysql Search Prefix

0

Я делаю поиск с префиксом с PHP/MySQL, но, как условие, дает нулевые записи.

У меня есть идентификатор ссылки -HFCT8765865674, и я хочу найти 42891HFCT8765865674, где 42891 - мой префикс. Я пытаюсь strpos и str_replace но не работает, поскольку я удалю префикс из других идентификаторов.

Mysql query-

SELECT * FROM leads where reference_id like '%42891HFCT8765865674%'

Изображение 174551

  • 0
    SELECT * FROM приводит, где reference_id, например, "% HFCT8765865674"
  • 0
    не работает мне нужно искать с префиксом
Показать ещё 7 комментариев
Теги:

2 ответа

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

Вы можете удалить префикс с помощью str_replace если знаете, что такое префикс.

$id = '42891HFCT8765865674';
$prefix = '42891';

$new_id = str_replace($prefix, '', $id);

$sql = "SELECT * FROM  leads where reference_id like '%$new_id%' OR '%$id%'";

Если вы не знаете префикс, но знаете его длину, вы можете использовать substr:

$id = '42891HFCT8765865674';
$prefix = substr($id, 0, 5);
$new_id = substr($id, 5);

$sql = "SELECT * FROM  leads where reference_id like '%$new_id%' OR '%$id%'";
  • 0
    Я тоже так думал. Но он упомянул, что уже пробовал с str_replace. Но не уверен, какова его реальная цель здесь. И вопрос не совсем понятен на самом деле.
  • 0
    Моя цель - не удалять префикс перед созданием запроса, потому что иногда в идентификаторе ссылки на базу данных содержится префикс или без префикса.
Показать ещё 5 комментариев
0

Если префикс всегда присутствует в строке и всегда имеет одинаковую длину:

SELECT * FROM 'leads' WHERE reference_id LIKE CONCAT('%', SUBSTRING('42891HFCT8765865674' FROM 6));

Ещё вопросы

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