 
			
				07.01.2017, 06:24
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от wadim
			
		
	 | 
 
	| 
		И знать могу ли я json_encode заменить на implode.
	 | 
 
	
 
 Строка массива чисел объединенный в строку через запятую равна json-строке массив чисел, за исключением крайних символов - [ и ]. Объединяйте на здоровье, легче то от этого не станет.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				07.01.2017, 07:15
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.01.2014 
					
					
					
						Сообщений: 150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 В mysql реализации есть замена по регулярному выражению. Я по крайней мере это сделал. Могу удалить 44 из строки 15,44,10, остается решить как удалить запятые - решу может быть. Данные хранятся так: 
id  qq  arr   
1  10  15,44,10 
Происходит выборка при условии id  = тому то. 
Если я массив вынесу в отдельную таблицу, то мне придется в нее писать/удалять id, так как бывает нужно удалить полностью строку или создать строку в таблице, а это значит что придется со второй таблицей работать, в которую вынесем массив. К тому же удаление элемента в массиве-строке во второй таб, приведет к нулевым полям, вот так: 
id1           id2     id3    .................... 
15           12      16 
0             13      0 
10           0        0 
 
Тоже хватит мароки. Есть ли есть другой вариант структуры - пишите, буду благодарен. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				07.01.2017, 08:02
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 В mysql есть поиск по регулярному выражению, замены нет. А если вы такое обнаружили, заменяйте сразу с запятой, что мешает? 
 
Про удаление и будет id равное 0, это конечно глупость. 
 
PS. Есть оператор REPLACE(), на здоровье, заменяйте, но, если к примеру есть "11,24,2,15" и надо заменить 2 на 7, то замена этим оператором ",2" на ",7", вернет результат "11,74,7,15". Шаблон регулярного выражения да еще замену по этому шаблону сюда вставить нельзя. 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось laimas, 07.01.2017 в 08:34.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				07.01.2017, 08:32
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.01.2014 
					
					
					
						Сообщений: 150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Мешает то что при удалении ,44, мы получим 1510 из 15,44,10. Вообще при удалении из поля mysql мы часто имеем 0 или я сам пишу туда 0, так как мне важно что я после прочту. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				07.01.2017, 08:55
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Я вам уже все сказал, больше сказать нечего. И вообще, REGEXP в mysql, это не Perl RegEXP в РНР, это простейшее для поиска. 
 
Хотите без проблем управлять данными, значит представляйте их в подобающей структуре. То что какие-то 0 при этом получаются, так это глупости от непонимания. ) 
 
Либо сложные изменения, а тем более по условию производите не средствами sql. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2017, 02:23
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.01.2014 
					
					
					
						Сообщений: 150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Если удаляем к примеру 44 хоть со строки, хоть с отдельного поля (поле =44) что остается? Ноль, или что напишешь, мне нужно чтобы программа при чтении нуля  понимала, что данные равны нулю или сложнее - что данных нет. иначе не корректная работа проги будет. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				08.01.2017, 05:05
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Если удаляем запись в базе, то ничего там не остается. 
 
То что вы пишите умом не понять. То что вы описываете есть индексный массив, и если использовать массив [1, 2, 3], в котором удален 2, то и бог с ним, нет и не надо. Но если это массив ['key_1'=>1, 'key_2'=>2,'key_3'=>3] и мы также работаем с его ключами, которые постоянны, то либо у ключа есть значение, либо null/0. То есть если переложить на базу, то ключи этого массива, есть нечто определенное в базе, а массив, это связанная по этим ключам таблица. Ключи этой таблицы (как и их значения) могут быть удалены только тогда, когда удаляется запись из основной таблицы по этому ключу. 
 
У вас же индексный массив, и коли как-то по нему задается связь, то длина такого массива (пусть изначально и без значений) должна быть задана, а иначе как? 
 
Я спрашивал что это за массив, связан ли он как-то с чем-то, чего мне не известно, а посему обо всех аспектах судить сложно. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2017, 18:25
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 20.01.2014 
					
					
					
						Сообщений: 150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 У меня конкретный вопрос как из строки 15,44,10 путем sql запроса удалить 44, с ключами понятно, если я пишу 15,44,10 и в  этой строке нет ключей, значит меня это устраивает, ключи получим при прочтении, мне не нужна связь ключей со значениями. Я удаляю значение, после сдвигаю ключи массива. Но все это и так понятно и работает, вопрос как sql запросом удалить значение со строки. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				18.01.2017, 19:47
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от wadim
			
		
	 | 
 
	| 
		У меня конкретный вопрос как из строки 15,44,10 путем sql запроса удалить 44
	 | 
 
	
 
 Я уже рассказывал какие есть для этого в MySQL средства, и то, что держать данные в базе, которые подвергаются таким изменениям, в виде строки, это геморрой. Что еще добавить?  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				22.01.2017, 09:29
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.03.2015 
					
					
					
						Сообщений: 163
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 я брал строку, преобразовывал json_decode, менял как надо, обратно json_encode и снова запись, действительно расстраивает, что база насилуется, но никогда не слышал, что можно менять строку прямо в базе, удалил 44 и не знаешь как удалить ,44 
можешь рассказать как ты удалил 44? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |