Вывести из базы, сравнив со значениями, которые записаны в одном поле через запятую?

VG
На сайте с 30.04.2017
Offline
86
417

Есть таблица

id - photo - his

в полях his например вот так выгялдят данные: 343-2, 123-1, 453-2, 355-1, 324-1, 234-2

нужно взять his определенного id, и из his (например 343-2, 123-1, 453-2) взять 343,123,453 (это id) и вывести принадлежащие им photo

подскажите как это вот в такой запрос вписать

$mysqli->query("SELECT a.his, a.id, b.id, b.photo FROM table a, table b WHERE ......

bay_ebook
На сайте с 28.05.2010
Offline
111
#1

НА вашем месте я бы сразу менял структуру БД (id-ники хранятся как ID-шники)

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

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
edogs software
На сайте с 15.12.2005
Offline
775
#2
VadimGen:
Есть таблица
id - photo - his

в полях his например вот так выгялдят данные: 343-2, 123-1, 453-2, 355-1, 324-1, 234-2

нужно взять his определенного id, и из his (например 343-2, 123-1, 453-2) взять 343,123,453 (это id) и вывести принадлежащие им photo

подскажите как это вот в такой запрос вписать

$mysqli->query("SELECT a.his, a.id, b.id, b.photo FROM table a, table b WHERE ......

Типа того

select a.his, a.id, b.id, b.photo from table a left join table b on substring_index( a.his, '-' , 1 )=b.id where b.id is not null

---------- Добавлено 15.09.2017 в 22:16 ----------

bay_ebook:
НА вашем месте я бы сразу менял структуру БД (id-ники хранятся как ID-шники)
По уму да.
bay_ebook:
даже если сейчас каким-то чудом у вас получится накостылять тут что-то,

Никакого чуда:)

bay_ebook:
то чем больше данных будет в базе - тем больше будет проблем.

Да откуда там много данных? Если человек задает такие вопросы, то вряд ли его наняли на серьезный объемный проект.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
PN
На сайте с 22.08.2012
Offline
103
#3
VadimGen:
Есть таблица
id - photo - his

в полях his например вот так выгялдят данные: 343-2, 123-1, 453-2, 355-1, 324-1, 234-2

нужно взять his определенного id, и из his (например 343-2, 123-1, 453-2) взять 343,123,453 (это id) и вывести принадлежащие им photo

подскажите как это вот в такой запрос вписать

$mysqli->query("SELECT a.his, a.id, b.id, b.photo FROM table a, table b WHERE ......

Вам дали все правильные советы. Никогда не надо хранить данные, с которыми Вы работаете, ни в JSON, ни через запятую, ни как-то еще. ТОЛЬКО одно значение! В таких форматах можно хранить только какие-нибудь логи при условии, что Вы НИКОГДА ими не воспользуетесь для выборки. Но так как гарантии, что через год Вам не захочется сделать выборку по данным из логов, лучше ВСЕГДА использовать нормальный формат хранения данных.

---------- Добавлено 17.09.2017 в 21:34 ----------

edogs:

Да откуда там много данных? Если человек задает такие вопросы, то вряд ли его наняли на серьезный объемный проект.

Может у него свой проект объемный. Я помню свой первый проект, когда я еще только начал изучать PHP и MySQL, делал так:


function select_user($email)
{
$res = mysql_query("SELECT * FROM users");
while ($row = mysql_fetch_assoc($res))
{
if ($row['email'] == $email) return $row;
}
}

😂

И ведь 4 года проект проработал.

Мой совет помог? Не скупись! Bitcoin 1Lseddet1o1B6odgXQHbGaWGwRkt1Db8Ef Ethereum 0x450f1a17461e25194B7F9226cDEe70173F39e1e1

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий