|
|
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
В базу поступают записи. Как новые, так и старые. У каждой записи есть идентификатор. Проблема в том, что идентификаторы могут не совпадать, а записи считаются идентичными. Определен набор полей (5 штук), при равенстве которых, записи считаются идентичными. Логику INSERT or UPDATE хочу завернуть в процедуру. Поля nullable, а заказчик, хочет логику NULL vs ANY = TRUE. Т.е. повесить уникальный ключ и дергать On DUPLICATE KEY UPDATE не получится. Вижу два варианта решения: 1) делать курсор с условиями вида Код: sql 1. 2. 3. 2) Клеить PREPARED STATEMENT Может, кто чего потолковей посоветует? С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 01:41:25 |
|
||
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, А можно маленький пример? Что-то формулу "NULL vs ANY = TRUE" осознать не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 01:50:03 |
|
||
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
miksoftА можно маленький пример? NULL равно всему. Т.е. любое сравнение с NULL должно дать TRUE. Если поле или сравниваемое значение - NULL, то сравнение по этому полю не учитывается _Vasilisk_2) Клеить PREPARED STATEMENTС этим уже обломGenerally, statements not permitted in SQL prepared statements are also not permitted in stored programs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 01:55:45 |
|
||
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
А может таки уникальный ключ подойдет? http://dev.mysql.com/doc/refman/5.5/en/create-table.html For all engines, a UNIQUE index permits multiple NULL values for columns that can contain NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 02:05:12 |
|
||
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
miksoftА может таки уникальный ключ подойдет?Нет. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. В итоге IDVALIDX1IDX2112321NULL4 а хотелось IDVALIDX1IDX21124 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 15:06:54 |
|
||
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
А если вставка будет в обратном порядке? Код: sql 1. 2. что должно получиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 15:25:00 |
|
||
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
miksoftА если вставка будет в обратном порядке?1 NULL 3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2015, 15:42:45 |
|
||
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_NULL равно всему. Т.е. любое сравнение с NULL должно дать TRUE. Упс. А я всегда считал что NULL ничему не равно, даже "сам себе" ... то есть любое сравнение с NULL всегда дает false ... почему и нельзя повесить уникальный ключ .. раньше було. Не подскажите с какой версии Мускуля оно изменилось? Если надо вешать уник. ключ, то откажитесь от полей IS NULL сделайте значение по умолчанию ... 0 скажем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 06:59:05 |
|
||
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
Arhat109А я всегда считал что NULL ничему не равно, даже "сам себе" ...Так и есть. Читайте внимательно топик _Vasilisk_ заказчик, хочет логику NULL vs ANY = TRUE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 12:45:20 |
|
||
|
Сравнение с NULL
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Arhat109А я всегда считал что NULL ничему не равно, даже "сам себе" ...Так и есть. Читайте внимательно топик _Vasilisk_ заказчик, хочет логику NULL vs ANY = TRUE.Ну раз он "хочет", то пусть честно разрабатывает соотв. теорию и СУБД под неё, а только потом начнёте работать вы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 06:29:35 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38862526&tid=1833654]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 217ms |
| total: | 366ms |

| 0 / 0 |
