LINUX.ORG.RU

[mysql] он меня на...

 


0

1

Решил я в довесок к тегам тоже самое сделать со словами. Т.е. посчитать какие и сколько слова употреблялись в титле толксов. после получения результата - данные разительно не сошлись с тем что дают тэги.

А теперь самый, наверное, главный прикол:


grep "INSERT INTO worddict (\`id\`,\`wordname\`) VALUES (NULL,'жж');" words-db |wc -l
709

mysql> select count(id) from worddict where wordname='жж';
+-----------+
| count(id) |
+-----------+
|       181 |
+-----------+
1 row in set (0.05 sec)


(words-db - дамп бля базы чтобы потом можно было посчитать уже через неё)

и как это понимать?



Последнее исправление: visual_pipe (всего исправлений: 1)

ошибка в том что ты делаешь count на id а не на wordname. У тебя в инсертах id=NULL. Почитай доки как count работает.

true_admin ★★★★★
()
Ответ на: комментарий от valich

А еще в дампе могет быть

тогда бы wc -l показал сильно меньше строк чем count().

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Цитата с mysql.com:

An integer or floating-point column can have the additional attribute AUTO_INCREMENT. When you insert a value of NULL (recommended) or 0 into an indexed AUTO_INCREMENT column, the column is set to the next sequence value. Typically this is value+1, where value is the largest value for the column currently in the table. AUTO_INCREMENT sequences begin with 1.

drakmail ★★★★
()
Ответ на: комментарий от true_admin

Проверил:

mysql> create table lor_test ( id INT AUTO_INCREMENT PRIMARY KEY);
Query OK, 0 rows affected (0.11 sec)

mysql> insert into lor_test values (NULL);
Query OK, 1 row affected (0.01 sec)

mysql> insert into lor_test values (NULL);
Query OK, 1 row affected (0.01 sec)

mysql> select * from lor_test;
+----+
| id |
+----+
|  1 |
|  2 |
+----+
2 rows in set (0.00 sec)

mysql> select count(id) from lor_test;
+-----------+
| count(id) |
+-----------+
|         2 |
+-----------+
1 row in set (0.00 sec)
drakmail ★★★★
()
Ответ на: комментарий от true_admin

А вот собственно дамп той таблицы:

--
-- Table structure for table `lor_test`
--

DROP TABLE IF EXISTS `lor_test`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `lor_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `lor_test`
--

LOCK TABLES `lor_test` WRITE;
/*!40000 ALTER TABLE `lor_test` DISABLE KEYS */;
INSERT INTO `lor_test` VALUES (1),(2);
/*!40000 ALTER TABLE `lor_test` ENABLE KEYS */;
UNLOCK TABLES;
drakmail ★★★★
()
Ответ на: комментарий от valich

collate = independent (utf8); count() в любом случае возращает 181

Ещё заметил, что зажирает он не весь дамп, при этом не выдаёт никаких ошибок

visual_pipe
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.