Вставка заголовка в таблицу, если он дубликат, мне нужно нумеровать его, например:
заглавие
Название 2
Название 3 и т. Д.
Я думал, что смогу просто сравнить новый заголовок с теми, что в таблице, получив длину, а затем сделать что-то вроде
"SELECT field FROM tablename WHERE LEFT(field,".$Length.") = '$NewTitle'"
затем просто посчитайте строки и приращения, чтобы создать новый заголовок и сохранить его. Думаю, это не законно.
Не могу найти простое решение. Записи поступают через API, поэтому я не могу легко попросить пользователей переименовать заголовок, если он конфликтует.
Я старался
$NameLength = strlen($DocName);
SELECT DocName, count(DocName) FROM Pickup GROUP BY DocName HAVING LEFT(DocName,'$NameLength') = '$DocName'";
Итак, если у меня есть три заголовка, «Заголовок»; «Название 2»; «Название 3», я думал, что мог тогда сделать
$D = mysql_fetch_array($Result);
$RCount = ($D[count(DocName)]) + 1;
$NewTitle = $DocName.' '.$RCount;
который работает нормально для первого конфликта, создавая «Заголовок 2», но затем продолжит создавать «Заголовок 2» в последующих записях.
Я не совсем обдумал это. Я знаю, что это связано с отличительностью группы, но если у меня есть один «заголовок» и два заголовка 2 и два заголовка 3, и я отправляю другой «заголовок», он будет увеличивать его до «заголовка 4», а затем Название «также будет переименовано в» Название 4 «. Неужели в Group By не будет ничего, что не имеет партнера?
Во всяком случае, это не решение проблемы.
SELECT MAX(CONVERT((TRIM(SUBSTRING(`field`, LOCATE(' ', `name`) ))),UNSIGNED)) as count FROM `tablename` WHERE `field` LIKE 'Title%'
Скажем заглавие название, которое вы ищете в таблице.
Вы можете получить количество записей, имеющих название заглавие используя запрос "SELECT count fieldname FROM tablename fieldname = 'title'
,
Если число равно 0, тогда вставьте его обычным способом, иначе увеличьте число на 1 и добавьте его к заглавие а затем вставьте его.