подсчитайте количество запятых в строке, значений будет на одно больше ;)
количество запятых считайте уже на клиенте, функции sql тут не причем
например
substr_count($sname, ',') + 1;
Пробовал такой вариант, но например эта строка может быть совсем пустой, или иметь только одно значение. Если только одно значение, то запятой не будет.
И? проверка на пустоту строки, если да - то значений 0, если не пустая - то substr_count($sname, ',') + 1;
если значение одно и запятых нет - функция вернет 0, прибавим 1, получим 1...
Борис Якушев: а если значение по умолчанию задано как NOT NULL, тогда оно будет записано как ноль. empty в этом случае не сработает, т.е. будет не empty а нулем ;)
Борис Якушев: используйте вариант, предложенный Дмитрием Кимом. Он на 100% рабочий без всяких условий и самое главное - понятен. Т.е. при беглом осмотре кода в дальнейшем будет сразу ясно что именно делает этот код. В отличие от подсчета запятых.
оба варианта в конечном счете одинаковы. Я просто считаю разделители, а там строка делится по разделителям. Случай, когда строка пуста или не содержит разделителей обрабатывать надо специально. В моем случае достаточно обработать случай пустой строки