Ваша основная проблема - следующее замечание по phpMyAdmin в столбце description
:
Из-за своей длины этот столбец может быть недоступен для редактирования.
blockquote>В этом случае текущий тип данных
TEXT
слишком мал, поэтому нет места для добавления дополнительных данных в поле. Вы можете изменить тип данных следующим образомALTER TABLE
на больший (MEDIUMTEXT
илиLONGTEXT
):ALTER TABLE oc_information_description MODIFY description MEDIUMTEXT
Ваша вторая проблема - неправильный синтаксис sql (пытается решить первая проблема):
1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с «COLUMN description (MAX_ROWS = 1000000000 AVG_ROW_LENGTH = 1000000000)» в строке 1
blockquote>Нельзя указать [117 ] или
MAX_ROWS
для определенного столбца. Вы можете указать их только для таблицы. Вы можете изменить эти значения следующим образомALTER TABLE
:ALTER TABLE oc_information_description AVG_ROW_LENGTH = 1000000000, MAX_ROWS = 1000000000
BLOCKQUOTE>
table_options
означает параметры таблицы такого типа, которые можно использовать в оператореCREATE TABLE
, такие какENGINE
,AUTO_INCREMENT
,AVG_ROW_LENGTH
,MAX_ROWS
,ROW_FORMAT
илиTABLESPACE
.
Как насчет некоторого Knuth-Fisher-Yates переставляют алгоритм?
for (int i = cards.Length - 1; i > 0; i--)
{
int n = rand.Next(i + 1);
Swap(ref cards[i], ref cards[n]);
}
Код взят от Кодирования Ужаса. Это - также рекомендуемое продолжение читать, как люди часто делают эту несправедливость.
Проверьте этот классный Linq способ сделать его:
public class Employee
{
public int Id
{
get;
set;
}
public string Name
{
get;
set;
}
}
Заполните список:
List<Employee> list = new List<Employee>();
list.Add(new Employee { Id = 1, Name = "Davolio Nancy" });
list.Add(new Employee { Id = 2, Name = "Fuller Andrew" });
list.Add(new Employee { Id = 3, Name = "Leverling Janet" });
list.Add(new Employee { Id = 4, Name = "Peacock Margaret" });
list.Add(new Employee { Id = 5, Name = "Buchanan Steven" });
list.Add(new Employee { Id = 6, Name = "Suyama Michael" });
list.Add(new Employee { Id = 7, Name = "King Robert" });
list.Add(new Employee { Id = 8, Name = "Callahan Laura" });
list.Add(new Employee { Id = 9, Name = "Dodsworth Anne" });
Затем вид:
list = list.OrderBy(emp => Guid.NewGuid()).ToList();
Моим любимым решением перестановки материала является использование N*log N вид, и передайте его предикат вида, который возвращает случайный результат. Это имеет хорошую функцию, которая является, может быть сделан с минимумом нового кода с помощью стандартных блоков, которые большинство языков имеет удобный даже в самых чередуемых версиях.
Вы могли использовать алгоритм перестановки Фишера-Йетса, который работает в линейно-разовом.
Позвольте мне направить Вас к одному НЕПРАВИЛЬНОМУ способу сделать его, и способ, которым я признаюсь, что использовал прежде и никогда не видел ошибки его до этого сообщения в блоге:
Я создал бы новый Список и заполнение его с объектами, которые случайным образом выбраны и удалены из исходного Списка.
Попробуйте этот код здесь
Это использует IComparer. Выдержать сравнение
Это будет хорошая практика, если Вы сделаете функцию с помощью дженериков