php - MySQL 在 WHERE 子句中使用 LEFT 或 SUBSTRING 来增加重复值

标签 php mysql function group-by having

向表格中插入标题,如果重复,我需要对其进行编号,例如 标题 标题 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'";

所以,如果我有三个标题,“Title”; “标题 2”; “Title 3”,我想我可以做到

$D = mysql_fetch_array($Result);
$RCount = ($D[count(DocName)]) + 1;
$NewTitle = $DocName.' '.$RCount;

对于第一个冲突,它可以正常工作,创建“标题 2”,但随后将继续在后续条目中创建“标题 2”。

我还没有完全理解这一点。我知道这与 group by 的独特性有关,但如果我有一个“标题”和两个标题 2 和两个标题 3,并且我发送另一个“标题”,它会将其增加到“标题 4”,即后续的“Title”也将更名为“Title 4”。 Group By 是否不会包含任何没有配合的内容?

无论如何,这都不是一个解决方案。

最佳答案

SELECT MAX(CONVERT((TRIM(SUBSTRING(`field`, LOCATE(' ', `name`) ))),UNSIGNED)) as count FROM `tablename` WHERE `field` LIKE 'Title%'

关于php - MySQL 在 WHERE 子句中使用 LEFT 或 SUBSTRING 来增加重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43605343/

相关文章:

php - 在 <div> 中打印 session 变量

php - 如何在 php 脚本仍在运行时显示结果

php - 如果页面刷新如何取消保存

linux - Aws EC2 实例中的 Mysqldump 错误

function - 如何将元组作为参数传递给 Lua 函数?

ios - 我无法在另一个 ViewController 中执行函数

php - laravel 包含 View 中的数据

php - 如何使用 php 根据用户角色更改 WordPress 管理页面的背景颜色?

PHP - 存储 SELECT 查询并在 INSERT 查询中使用它

C编程: dereferencing pointers