Используя LIKE, чтобы найти что-то внутри строки

-4

Я не понимаю, почему это не работает. У меня есть следующее содержание в sowner: "6 4 7" без кавычек, но со всеми пробелами, включая в начале и в конце. Это значение sowner для строки в БД.

У меня есть идентификатор строки, который я преобразовываю в строку этой формы (id 4) "4", затем просматриваю ее внутри sowner, чтобы увидеть, есть ли она там. Результаты не возвращаются.

Вот мой код:

$sql = 'SELECT * FROM 'services' WHERE 'sowner' LIKE ?';
$stmt = $conn->prepare($sql);
if($stmt === false) {
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->errno . ' ' . $conn->error, E_USER_ERROR);
}
$spacedid = " " . strval($row['id']) . " ";
$stmt->bind_param('s', $spacedid);
$stmt->execute();
$res3 = $stmt->get_result();

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

Я уверен, что это LIKE, потому что, если я удалю WHERE, появятся все строки.

Кроме того, я использую ту же реализацию в форме запроса типа поиска, как это

SELECT * FROM 'users' WHERE username LIKE ?

спросил(а) 2015-04-23T18:21:00+03:00 5 лет, 6 месяцев назад
0
81

вам нужно добавить подстановочные операторы к подобному

поэтому утверждение больше походит

SELECT * FROM 'users' WHERE username LIKE '% 6 %'

изменить линию

$spacedid = " " . strval($row['id']) . " ";

в

$spacedid = "% " . strval($row['id']) . " %";

ответил(а) 2015-04-23T18:24:00+03:00 5 лет, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема