2013-11-13 2 views
-1

Я пытаюсь получить количество строк в таблице, а затем вставить это число в ту же таблицу, все с одним запросом. Я посмотрел на подзапрос, и это throws error, так как я делаю это на та же таблица.mysqli - INSERT с COUNT в одной таблице в одном запросе?

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

SET @nums := (SELECT COUNT(*) FROM myitems); 
INSERT INTO myitems (`label`, `counted`) VALUES ('blah', @nums); 

Могу ли я доверять, что это будет надежным? Я не супер эксперт по SQL-операторам.

PS: Я знаю около AUTO_INCREMENT, которые вы, возможно, думаете, должны быть использованы здесь. Я упростил свою ситуацию, чтобы удержать вопрос esy, чтобы переварить (и, надеюсь, ответ).

+1

почему вы хотите это сделать? – Strawberry

+0

Почему люди опрокидывают вопросы только потому, что не понимают их? Я хочу получить текущее количество строк в таблице 'myitems' и вставить этот номер в свой оператор' INSERT', все в одном выражении. Если бы я объяснил все причины, по которым мне пришлось бы опубликовать 250 строк кода, и никто не захочет просеивать их. – tim

+1

Поощрять OP для их улучшения. Это все. Ничего более злокачественного. Если вы хотите изменить свой вопрос, выполните его и отредактируйте. Не комментируйте это. Это просто глупо. Кстати, решение, которое вы предложили, испорчено. Он страдает от того, что известно как состояние гонки. – Strawberry

ответ

0

Почему бы не использовать INSERT ... SELECT?

INSERT INTO myitems(`label`, `counted`) 
SELECT 'blah', COUNT(*) FROM myitems; 

Я не знаю, почему вы могли бы сделать это, но это не ответ на ваш вопрос

+0

Я не должен очень хорошо объяснять свой вопрос - я хочу вставить количество текущих строк в таблице в качестве записи в этой таблице. – tim

+0

И вот что делает этот код. Если вы запустили его, как есть, вы получите строку с 'blah' и количество записей в таблице в то время. – Machavity

Смежные вопросы