Я делаю поиск с префиксом с PHP/MySQL, но, как условие, дает нулевые записи.
У меня есть идентификатор ссылки -HFCT8765865674, и я хочу найти 42891HFCT8765865674, где 42891 - мой префикс. Я пытаюсь strpos и str_replace
но не работает, поскольку я удалю префикс из других идентификаторов.
Mysql query-
SELECT * FROM leads where reference_id like '%42891HFCT8765865674%'
Вы можете удалить префикс с помощью 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%'";
Если префикс всегда присутствует в строке и всегда имеет одинаковую длину:
SELECT * FROM 'leads' WHERE reference_id LIKE CONCAT('%', SUBSTRING('42891HFCT8765865674' FROM 6));