|
|
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, подскажите кому не трудно, есть таблица в mysql вида: *телефон дата id * 236 2016-04-12 09:57:37 333 * 236 2016-04-12 09:57:35 * 209 2016-04-12 09:57:36 343 * 236 2016-04-12 09:59:35 * 236 2016-04-12 09:59:37 355 * 236 2016-04-12 09:59:38 id соответствует номеру телефона, но может быть разный, нужно заполнить пустые поля значением id для конкретного телефона чтобы получилось: *телефон дата id * 236 2016-04-12 09:57:37 333 * 236 2016-04-12 09:57:35 333 * 209 2016-04-12 09:57:36 343 * 236 2016-04-12 09:59:35 333 * 236 2016-04-12 09:59:37 355 * 236 2016-04-12 09:59:38 355 заранее благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 18:52 |
|
||
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
vitekb, чтонибудь типа : Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 19:20 |
|
||
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
....ааа, так у вас динамически может изменится ИД у *236 с ид=333 на ид=355 ? так? тогда на переменных или курсором в хранимой процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 19:22 |
|
||
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
....можно еше левый селф-джоинт сделать по условию одинакового телефона и по времени спрва ДО времени слева. потом выбрать последнее непустое значение... ...а может и не левый... а может и продется два селф-джоинта делать ... посмотрите ФАК -- выборка первой-последней записис в группе. Там описан случай двух таблиц перент-чайлд. В вашем случае одна и таже таблица таботает и как перент и как чайлд. поэтому два селф-дхоинта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 19:31 |
|
||
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
javajdbc, да, id может измениться в любое время и недавно занимаюсь SQL не могу придумать как сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 20:22 |
|
||
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
javajdbc, спасибо, посмотрю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 20:25 |
|
||
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
vitekb, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2016, 00:38 |
|
||
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
javajdbc, спасибо за помощь, поле id заполняется, но не полностью, например у телефона 236 во всех id должно быть 333, но встречается с пустым значение, постараюсь разобраться почему это происходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2016, 08:51 |
|
||
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
javajdbc, спасибо за направление, реализовал с помощью курсора добавил автоинкремент для update из курсора ALTER TABLE queue_back ADD `id1` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; создал процедуру CREATE DEFINER=`testdb`@`%` PROCEDURE `opername`() BEGIN DECLARE done INT DEFAULT 0; DECLARE oid INT DEFAULT 0; DECLARE odate DATETIME; DECLARE oname CHAR(20); DECLARE ophone CHAR(64); DECLARE Cursor1 CURSOR FOR SELECT `id1`, `date`, `phone`, `id` FROM `test_test` ORDER BY `agent`; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1; OPEN Cursor1; FETCH Cursor1 INTO oid, odate, ophone, oname; WHILE done = 0 DO IF oname != 0 THEN SET @onamet := oname; SET @ophonet := ophone; END IF; IF oname = 0 AND @ophonet = ophone THEN update `test_test` set `id` = (@onamet) where `id1` = oid; END IF; FETCH Cursor1 INTO oid, odate, ophone, oname; END WHILE; CLOSE Cursor1; END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2016, 21:19 |
|
||
|
Mysql вставка значение поля из этого же поля
|
|||
|---|---|---|---|
|
#18+
а разве нельзя сделать "классическим" способом?? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2016, 14:32 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39223895&tid=1831872]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
204ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 527ms |

| 0 / 0 |
