<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум PHP-MyAdmin.RU &mdash; Разбить строку таблицы на несколько частей]]></title>
	<link rel="self" href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=784&amp;type=atom" />
	<updated>2008-05-23T22:15:16Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.php-myadmin.ru/viewtopic.php?id=784</id>
		<entry>
			<title type="html"><![CDATA[Re: Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5156#p5156" />
			<content type="html"><![CDATA[<p><strong>chem1</strong><br />Если количество символов в поле более 255 и менее 65535, MySQL автоматически подставит тип text вместо varchar. При использовании varchar, просто не надо запоминать, сколько символов может содержать используемый тип. Использовать тип text для данных менее 256 символов - неразумно, а более 65535 он содержать не может. Выбор типа всегда зависит от задачи.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-05-23T22:15:16Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5156#p5156</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5154#p5154" />
			<content type="html"><![CDATA[<p>стал разбираться, заметил </p><p><em>`text` varchar(1000) NOT NULL</em></p><p>тип varchar вы предлогаете использовать по каким причинам? <br />Просто я всегда для текстовых массивов использую тип text.<br />Для этого типа в phpMyAdmin более удобная форма для редактирования.<br />Как правильнее?</p>]]></content>
			<author>
				<name><![CDATA[chem1]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1300</uri>
			</author>
			<updated>2008-05-23T18:30:40Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5154#p5154</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5104#p5104" />
			<content type="html"><![CDATA[<p>Спасибо огромное!<br />Все сработало.<br />Получилось то, что я хотел!</p>]]></content>
			<author>
				<name><![CDATA[chem1]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1300</uri>
			</author>
			<updated>2008-05-20T04:41:44Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5104#p5104</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5100#p5100" />
			<content type="html"><![CDATA[<p><strong>chem1</strong><br />CALL - это обычный SQL запрос. Как обычно SELECT пишите, так и это.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-05-19T20:39:31Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5100#p5100</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5098#p5098" />
			<content type="html"><![CDATA[<p>Спасибо!<br />Процедура создалась.</p><p><em>После вызова:<br />CALL proc(100);</em></p><p>А как вызов осуществить? Где его написать надо?</p>]]></content>
			<author>
				<name><![CDATA[chem1]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1300</uri>
			</author>
			<updated>2008-05-19T18:29:33Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5098#p5098</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5096#p5096" />
			<content type="html"><![CDATA[<p>Создайте процедуру proc с помощью данного запроса. При выполнении в phpMyAdmin, не забудьте поставить в поле разделителя две косые черты [//]. Измените имена процедуры и таблиц, чтобы они не задели существующие данные.</p><p>После вызова:<br />CALL proc(100);<br />в таблице done будут данные разрезанные по 100 символов. Значение параметра можно менять.<br /></p><div class="codebox"><pre><code>CREATE PROCEDURE `proc`(IN incr_param INT)
BEGIN
  DECLARE xtext text;
  DECLARE xid INT;
  DECLARE xlength INT;
  DECLARE xpos INT DEFAULT 1;

  SELECT `id`, `text`, CHAR_LENGTH(`text`) INTO xid, xtext, xlength
  FROM `table` WHERE `id` = 1;

  DROP TABLE IF EXISTS `done`;
  CREATE TABLE `done` (
    `id` tinyint(4) NOT NULL,
    `page` mediumint(8) unsigned NOT NULL auto_increment,
    `text` varchar(1000) NOT NULL,
    KEY `page` (`page`)
  ) ENGINE=MyISAM;

  loop1: LOOP
    INSERT INTO `done` (`id`, `text`) VALUES (xid, substring(xtext, xpos, incr_param));
    SET xpos = xpos + incr_param;
    IF xpos &lt;= xlength THEN ITERATE loop1; END IF;
    LEAVE loop1;
  END LOOP loop1;

END</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-05-19T15:43:17Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5096#p5096</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5092#p5092" />
			<content type="html"><![CDATA[<p><em>Это надо исходную таблицу перезаписать полученными разрезанными данными, или необходимо создать другую таблицу и вставить в нее?</em><br />Удобнее было бы перезаписать, но вобщем то не принципиально, можно и в новую таблицу запихать.</p><p><em>Текст можно только по количеству символов разрезать, но в этом случае слова будут разрезаны.</em><br />Устраивает</p><p><em>В получаемой таблице id будет константой из исходной таблицы, а page инкементальным целочисленным значением?</em><br />id - да, page - фактически это будет номер страницы (число), который затем будет выводиться на странице сайта ввиде пагинатора 1,2,3,4....105</p>]]></content>
			<author>
				<name><![CDATA[chem1]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1300</uri>
			</author>
			<updated>2008-05-19T11:57:59Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5092#p5092</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5091#p5091" />
			<content type="html"><![CDATA[<p><strong>chem1</strong><br />Это надо исходную таблицу перезаписать полученными разрезанными данными, или необходимо создать другую таблицу и вставить в нее? Текст можно только по количеству символов разрезать, но в этом случае слова будут разрезаны.</p><p>В получаемой таблице id будет константой из исходной таблицы, а page инкементальным целочисленным значением?</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-05-19T11:04:12Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5091#p5091</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5089#p5089" />
			<content type="html"><![CDATA[<p>P.S. В программировании дуб дубом, буду благодерен если в своем ответе вы это учтете <img src="https://forum.php-myadmin.ru/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></content>
			<author>
				<name><![CDATA[chem1]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1300</uri>
			</author>
			<updated>2008-05-19T10:36:45Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5089#p5089</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Разбить строку таблицы на несколько частей]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=5088#p5088" />
			<content type="html"><![CDATA[<p>В строке таблицы mySQL большой массив данных (текст). Можно его как-нибуть разбить на несколько мелких частей? Частей должно быть много (больше сотни) поэтому вариант резрезать в ручную не предлагать.</p><p>Исходная строка таблицы: id (идентификатор - номер строки), page (пусто), text (400kb текста)</p><p>Должно получиться :&nbsp; id (идентификатор - номер строки), page (1), text (первые 4kb текста)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;id (идентификатор - номер строки), page (2), text (вторые 4kb текста)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;id (идентификатор - номер строки), page (3), text (третие 4kb текста)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;и т.д.</p>]]></content>
			<author>
				<name><![CDATA[chem1]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1300</uri>
			</author>
			<updated>2008-05-19T10:30:02Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=5088#p5088</id>
		</entry>
</feed>
